如何在一行中将事件监听器添加到多个元素

新手上路,请多包涵

示例 1:

 element1.addEventListener("input", function() {
  // this function does stuff
});

示例 2:

 element1 && element2.addEventListener("input", function() {
  // this function does stuff
});

它在语法上可能不正确,但有没有一种方法可以同时(同一行)为两个元素提供相同的事件侦听器,而不必将它们分开?

原文由 Jamisco 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 327
2 个回答

好吧,如果你有一个包含你可以做的元素的数组:

 let elementsArray = document.querySelectorAll("whatever");

elementsArray.forEach(function(elem) {
    elem.addEventListener("input", function() {
        //this function does stuff
    });
});

原文由 GMaiolo 发布,翻译遵循 CC BY-SA 4.0 许可协议

事件冒泡是javascript中的一个重要概念,所以如果你可以直接在DOM上添加事件,你可以节省一些代码行,不需要循环:

 document.addEventListener('click', function(e){
  if(e.target.tagName=="BUTTON"){
   alert('BUTTON CLICKED');
  }
})

原文由 Ayush Sharma 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题