将相同的事件侦听器函数添加到多个元素

时间:2017-08-25 15:08:17

标签: javascript

  document.getElementById("composantes").addEventListener("click", function(event){
                event.preventDefault();
                var selector = $(this);
                console.log('click'+selector.attr('id'));
                ToggleLocalStorage(selector,'expanded');
            });

这是我的代码,我希望它适用于多个ID,例如:

document.getElementById("composantes, campus, public_target").addEventListener("click", function(event){

1 个答案:

答案 0 :(得分:9)

您可以使用querySelectorAll。使用命名函数也可能很好,这样你就不会创建比所需更多相同的函数。如果您需要取消绑定处理程序,它也会有所帮助。

const els = document.querySelectorAll("#composantes, #campus, #public_target");
for (const el of els) {
  el.addEventListener("click", handler);
}

function handler(event) {
  event.preventDefault();
  console.log('click', this.id);
  ToggleLocalStorage($(this),'expanded');
}