Есть у меня блок с блоками, выглядит примерно вот так:
<div id="client-personal-note-container">
<div id="client-personal-note-@item.Id" class="card card-body">
<i class="text-break" id="note-@item.Id">@item.Note</i>
<b>@item.CreatedOn.ToString("dd.MM.yyyy HH:mm")</b>
<br />
<a id="btn-@item.Id" data-target="#delete-note-modal" data-toggle="modal" href="#"><b>@localizator["Delete"]</b></a>
</div>
</div>
При загрузке страницы я делаю бинд клика (Код немного старый и кривой, переписывать не времени, не ругайте):
let buttons = $("[id|=btn]");
let noteModal = document.getElementById('note-modal');
for (let i = 0; i < buttons.length; i++) {
buttons[i].onclick = () => {
let buttonId = buttons[i].id.split('-')[1]; // Ставил тут брейк поинт. Читайте дальше, там написано
let note = document.getElementById('note-' + buttonId).innerHTML;
noteModal.innerHTML = note;
// Server request
});
}
И всё работает отлично, как положено (При клике открывается модалка, куда переносится инфа, мол, подтвердите удаление). Вот только проблема в том, что когда я добавляю новый блок вот таким кодом:
success: (response) => {
let clientNote = response.note;
let appendNotemakrup = '<div id="client-personal-note-' + clientNote.id + '" class="card card-body alert-success">' +
'<i class="text-break" id="note-' + clientNote.id + '">' + clientNote.note + '</i>' +
'<b>@localizator["JustCreated"]</b>' +
'<br />';
document.getElementById('client-personal-note-container').innerHTML += appendNotemakrup;
$('#note').val('');
location.href = '#client-personal-note-' + clientNote.id;
setTimeout(() => {
$('#client-personal-note-' + clientNote.id).removeClass('alert-success');
}, 3000);
},
То слетают все события и модалка уже открывается, но ничего не меняется там. Дебагал код, до добавления ставил брейкпоинты (выше в коде есть комментарий где) и они срабатывают. После добавления уже не работают.
Тут появляется вопрос, клик события реально слетают? Ну, тогда мне будет смысл опять их переназначать, ещё и добавлять туда новый блок сразу же (точнее, он сам добавится). Или же я просто где-то словил багу и не могу понять где.