我一直在寻找这个问题,但还没有找到答案。 我想知道 Javascript 中哪种做法更好。要添加仅在目标是所需的情况下才起作用的事件监听器:
document.addEventListener('click', function(e){
if(e.target && e.target.classList.contains('foo')){
}
});
或者创建一个引用所需元素的变量,如果存在则添加事件监听器
var a = document.querySelector('.foo');
if (a) {
a.addEventListener('click', function(){
})
}
最佳答案
我总是选择第一种方法,因为它也会影响动态创建的元素。我还认为你不需要条件的第一部分。我的代码如下所示:
document.addEventListener('click', function(e){
if(e.target.id == "confirm-button"){
// do something
}
});
关于javascript - 将事件监听器添加到文档,而不是检查元素是否存在,然后添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29438876/