gpt4 book ai didi

Javascript 按类名添加对象监听器

转载 作者:行者123 更新时间:2023-11-28 04:58:28 25 4
gpt4 key购买 nike

我想向动态创建的元素添加“点击”监听器。我的代码是:

function addListenerToElements (){
var aTags = document.getElementsByClassName("classElements")
for (var i=0;i<aTags.length;i++){
aTags[i].addEventListener('click',myFunction);
}
}

function myFunction() {
console.log("something");
}

但它不起作用(控制台中没有错误)

最佳答案

正如您所说的动态添加元素,事件委托(delegate)将是更好的方法。以下适用于静态元素,也适用于动态添加的元素:

document.getElementById("container").addEventListener("click", function(e) {
if (e.target && e.target.matches("div.className")) {
console.log('element clicked', e.target.innerText);
// or call your function
}
});
var index = 0;
document.getElementById('add').addEventListener('click', function(e) {
var div = document.createElement('div');
div.appendChild(document.createTextNode(index++));
div.className = 'className';
document.getElementById('container').appendChild(div);
});
<div id="container">
<div class="className">a</div>
<div class="className">b</div>
<div class="className">c</div>
<div class="className">d</div>
<div class="className">e</div>
</div>
<button id="add">Add Element</button>

关于Javascript 按类名添加对象监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42343471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com