На элементах весит событие на открытие менюшки, как только менюшка открылась, вещаются события на действия. Все действия работают (код в целом), но вот сообщение об ошибки в консоле насторожил, после addEventListener на указание что с ним что-то не так, код не работает. Следствием чего могут проблемы с addEventListener ?
var menu = {
open: function (el) {
let id = el.parentNode.parentNode.getAttribute('data-id');
let day = el.parentNode.getAttribute('data-date');
let userName = el.parentNode.parentNode.childNodes[1].innerText;
let date = new Date();
el.insertAdjacentHTML('beforeBegin', '<div class="context-menu">' +
'<p>' + userName + '<br>' + day + '/' + (date.getMonth()+1) + '/' + date.getFullYear() + '</p>'+
'<ul class="nav flex-column" data-menu="' + id + '">' +
'<li class="nav-item"><a class="nav-link" href="#add"><i class="fa fa-clock-o" aria-hidden="true"></i> Добавить</a></li>' +
'<li class="nav-item"><a class="nav-link" href="#edit"><i class="fa fa-pencil" aria-hidden="true"></i> Редактировать</a></li>' +
'<li class="nav-item"><a class="nav-link" href="#close"><i class="fa fa-times-circle" aria-hidden="true"></i> Закрыть</a></li>' +
'</ul></div>');
let elem = document.querySelectorAll('.context-menu a.nav-link');
for(let i = 0; elem.length > 0; i++) {
elem[i].addEventListener('click', function () {
switch (this.getAttribute('href')) {
case '#add' : menu.add(); break;
case '#edit' : menu.edit(); break;
default : menu.close(); break;
}
});
}
}
};