向文档添加事件侦听器与检查元素是否存在然后添加事件侦听器
Add event listener to the document versus check in element exists and then add event listener
我一直在寻找这个,但我没有找到答案。
我想知道 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 中哪种做法更好。要添加一个仅在目标为所需目标时才有效的事件侦听器:
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
}
});