向文档添加事件侦听器,而不是检入元素,然后添加事件侦听器

时间:2015-04-03 19:59:28

标签: javascript dom javascript-events addeventlistener

我一直在寻找这个,但我没有找到答案。 我想知道哪个是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(){

    })
}

感谢您的时间!!

1 个答案:

答案 0 :(得分:1)

我总是选择第一个方法,因为它也会影响动态创建的元素。我也认为你不需要条件的第一部分。我的代码如下所示:

document.addEventListener('click', function(e){
  if(e.target.id == "confirm-button"){
    // do something
  }
});
相关问题