javascript - 具有多个元素的 addEventListener

标签 javascript html addeventlistener

<分区>

我开始使用 . 我有两个按钮,并且希望在单击这些按钮中的任何一个时更改backgroundColor。 但是我的代码不起作用。 这是我的代码:

document.getElementsByTagName("button").addEventListener("click", function(){
    func(this)
});

function func(element){
    element.style.backgroundColor="gray";
}
<div id="area">
    <button type="button" class="btn" id="btn1">Play With Me!</button>
    <button type="button" class="btn" id="btn2">Play With Me!</button>
</div>

addEventListener 有什么方法可以处理多个元素吗?

最佳答案

最好的方法是在代码中使用尽可能少的事件监听器。因此,您可以将 1 个事件监听器附加到 area div 并根据 event.target 属性进行适当的更改,而不是将事件监听器附加到每个按钮。

运行下面的工作代码片段:

document.getElementById('area').addEventListener('click', function(event) {
  func(event.target);
});

function func(element) {
  element.style.backgroundColor = "blue";
}
<div id="area">
  <button type="button" class="btn" id="btn1">Play With Me!</button>
  <button type="button" class="btn" id="btn2">Play With Me!</button>
</div>

关于javascript - 具有多个元素的 addEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797372/

相关文章:

javascript - 如何使用 Selenium 或 Protractor 获取 HTML 中嵌套元素的文本以实现自动化?

javascript - 如何在 mapbox gl 中以编程方式关闭所有弹出窗口?

javascript - 如何找到 0 - 100 之间的质数?

javascript - MongoDB $and 查询不适用于变量查询字符串

创建另一个事件监听器时,Javascript 事件监听器消失

javascript - 如何在 JavaScript 中触发事件?

javascript - 如何监控 contenteditable div 中的文本样式和格式?

html - 如何在 bootstrap 5 表格单元格中垂直对齐文本?

javascript - 如何调用IE9的Ctrl-F并突出显示几个单词

HTML 将样式应用于 CSS 中的多个 div