事件监听器console.log两次

时间:2018-02-21 12:10:21

标签: javascript html

我有一个事件监听器,每次单击我需要的元素时,都会将console.log打印两次。我第一次得到null或undefined,第二次得到我需要的元素。为什么要这样?代码非常简单:

document.addEventListener("click", function(e) {
  var id = document.getElementById(e.target.value);
  console.log(id);
  id.style.display="block";
});

1 个答案:

答案 0 :(得分:0)

捕获文档上的任何单击,并检查单击的元素是否包含您要查找的类。这也适用于在加载页面后通过JavaScript添加到页面的动态添加元素。

// Add click event to all buttons
document.addEventListener("click", function(event) {
  if(event.target.classList.contains("clickme")) {
    //do something with the clicked element:
    console.log("Button clicked:");
    console.log(event.target.innerHTML);
  }
});
<button class='clickme'>Button 1</button>
<button class='clickme'>Button 2</button>