当前位置: 代码迷 >> JavaScript >> 使用$(document.on('click'有多个选择器,并检查是否触发了一次单击?
  详细解决方案

使用$(document.on('click'有多个选择器,并检查是否触发了一次单击?

热度:103   发布时间:2023-06-05 15:50:54.0

如果单击class ,则它将点击该方法。

现在,单击<div>元素之一将调用该方法三次。 我想将这些div组合在一起,检查是否调用了一个div,然后触发一次该方法。 否则什么也不会发生。

$(document.on('click', '.class1, .class2, .class3', (e) => { 

   someFunction();

}

我已经尝试过用此方法获取当前class ,但未成功。 以及使用currentTarget

有什么帮助吗? 我第一次使用JQuery时不确定该怎么做。

请参阅此示例。

或者,您可以这样做:

$('button[class^="class"]').click(function(e){
     alert('fired2');
});

为什么不简单地使用香草Javascript呢?

 document.addEventListener('click', (e) => { if (['class1', 'class2', 'class3'].includes(e.target.className)) { console.log(`${e.target.className} clicked`); } }) 
 <div class="class1">class 1</div> <div class="class2">class 2</div> <div class="class3">class 3</div> <div class="class4">class 4</div> 

IE兼容的ES5中的相同代码:

 document.addEventListener('click', function(e) { if (['class1', 'class2', 'class3'].indexOf(e.target.className) > -1) { console.log(e.target.className + ' clicked'); } }) 
 <div class="class1">class 1</div> <div class="class2">class 2</div> <div class="class3">class 3</div> <div class="class4">class 4</div> 

  相关解决方案