我有多个具有相同类名的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()是否有办法在我的所有课程中只发生一次?因为目前只应用一次,但每次点击具有该类名的单个div。
我需要这些div具有相同的类名。
答案 0 :(得分:2)
执行逻辑后,您可以在所有这些类上调用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()
。
答案 1 :(得分:0)
$('.js-item').on( "click", function() {
var $this = $(this);
$('.js-item').removeClass('classAdded');
$this.addClass('classAdded');
});
你可以这样欺骗。