innerHTML olay dinleyici eventleri yok ediyor.
<div id="content">
</div>
//content içine cart objesini dolduralım
cart();
function cart(){
const content = document.getElementById("content")
//Burda sadece silme işlemini yaptığım butonu koyuyorum uzamaması için
//objeden aldığım id var butonda
content.innerHTML = '<button class="del_btn" id="d${v.Id}">x</button>';
}
const btn = document.querySelectorAll('.del_btn');
for (let i = 0; i < btn.length; i++) {
btn[i].addEventListener("click", function(e){
alert(el = e.target);
cart();
});
}
//ŞUNU DENEDİM OLMADI
content.insertAdjacentHTML(`beforeend`,`<button class="del_btn" id="d${v.Id}">x</button>`;
Bir kaç saattir bununla uğraşıyorum ulaştığım sonuç innerHTML içindeki olay dinleyici eventler innerHTML kullanıldığı için yok ediliyormuş.
content.insertAdjacentHTML(beforeend
,<div>test</div>
); buda olmadı yada birşeyleri kaçırıyorum.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Eventları burdaki gibi yaparsan düzelir.
https://prototurk.com/soru/2478-javascript-tum-zamanlar-icin-secmek