我有一个事件监听器,每次单击我需要的元素时,都会将console.log打印两次。我第一次得到null或undefined,第二次得到我需要的元素。为什么要这样?代码非常简单:
document.addEventListener("click", function(e) {
var id = document.getElementById(e.target.value);
console.log(id);
id.style.display="block";
});
答案 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>