Привет!
Собственно , вопрос в названии... Есть код
let notificationsElementContainer = document.createElement("div");
notificationsElementContainer.addEventListener("click", function () {
console.log("clicked");
});
и т.д. После чего элемент добавляется в DOM. Но при клике на элемент, обработчик не запускается. В какую сторону копать?
Полный код метода:
this.view.clear();
let documentFragment = [];
let el;
this.clients.forEach(function (client, i) {
let j = i + 1;
el = document.createElement("div");
el.className = "list-group-item client-list-item " + client.warningLevel;
el.id = "ind_" + j;
el.title = client.id;
el.dataset.id = client['id'];
el.dataset.index = j;
if (j % 2 == 0) {
el.classList.add("event");
}
let firstColumn = document.createElement("span");
firstColumn.innerText = j.toString();
el.appendChild(firstColumn);
let secondColumn = document.createElement("span");
secondColumn.innerText = client.name;
if (client.notifications.length > 0) {
let notifications = "";
client.notifications.forEach(function (value) {
notifications = notifications.length == 0 ? (" - " + value + "!") : (notifications + "<br>" + " - " + value + "!");
});
let notificationsElementContainer = document.createElement("div");
notificationsElementContainer.addEventListener("click", function () {//Так не работает
console.log("clicked");
});
notificationsElementContainer.classList.add("client-notifications");
notificationsElementContainer.setAttribute("onclick", "MARWA.Plug()"); // Так работает, но это уже кривое решение
let notificationsElement = document.createElement("i");
notificationsElement.dataset["container"] = "body";
notificationsElement.dataset["toggle"] = "popover";
notificationsElement.dataset["placement"] = "right";
notificationsElement.dataset["content"] = notifications;
notificationsElement.dataset["originalTitle"] = "<div>Уведомления... " +
"<button class='pull-right btn btn-xs btn-link'><i class='fa fa-times'></i></button>" +
"</div>";
notificationsElement.className = "fa fa-exclamation-triangle";
notificationsElementContainer.appendChild(notificationsElement);
secondColumn.appendChild(notificationsElementContainer);
}
el.appendChild(secondColumn);
documentFragment.push(el.outerHTML);
}, this);
this.view.append(documentFragment);