如果单击class
,那么它将触及该方法。
现在,单击其中一个<div>
元素会调用该方法三次。我想将这些div组合在一起并检查是否有人被调用然后触发该方法一次。否则没有任何反应
$(document.on('click', '.class1, .class2, .class3', (e) => {
someFunction();
}
我试过用这个获得当前的class
,但没有成功。以及使用currentTarget
。
有帮助吗?我第一次使用JQuery时不知道如何处理这个问题。
看这个例子。
https://jsfiddle.net/efleon9/nz7dm2a4/2/
或者你可以这样做:
$('button[class^="class"]').click(function(e){
alert('fired2');
});
为什么不简单地用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>