我有多个具有相同类名的 div,但是一旦单击其中一个,如果再次单击具有相同类的另一个 div,我不希望我的函数再次发生。
$('.js-item').one( "click", function() {
console.log('clicked once');
// do something only once even if a div with the same class is clicked again
});
有没有办法让 .one() 在我的所有类(class)上只发生一次?因为目前它仅适用一次,但每次单击具有该类名称的单个 div 时。
我需要这些 div 具有相同的类名。
最佳答案
执行逻辑后,您可以对所有这些类调用 off()
:
$('.js-item').one("click", function() {
console.log('clicked once');
// do something only once even if a div with the same class is clicked again
$('.js-item').off('click');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>
使用此方法会使 one()
变得多余,因此您可以根据需要恢复到标准 on()
。
关于jquery - 在多个类上使用 .one(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40488727/