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

问题描述 投票:-1回答:2

如果单击class,那么它将触及该方法。

现在,单击其中一个<div>元素会调用该方法三次。我想将这些div组合在一起并检查是否有人被调用然后触发该方法一次。否则没有任何反应

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

   someFunction();

}

我试过用这个获得当前的class,但没有成功。以及使用currentTarget

有帮助吗?我第一次使用JQuery时不知道如何处理这个问题。

javascript jquery
2个回答
1
投票

看这个例子。

https://jsfiddle.net/efleon9/nz7dm2a4/2/

或者你可以这样做:

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

0
投票

为什么不简单地用vanilla 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>
© www.soinside.com 2019 - 2024. All rights reserved.