JQuery.on() 堆积起来
JQuery.on() piles up
为什么
JQuery.on('sameEventName.',function(){...});
堆积取决于代码工作了多少次?有什么办法可以防止这种情况发生吗??
这是fiddle
我猜您想实现即使多次点击也只有 1 个事件侦听器的行为。尽管下面的方法并不理想,但它是最简单的解决方法。使用 .off
函数删除之前的事件侦听器。
$(document).off('aCustomEventName');
$(document).on('aCustomEventName', function(){...});
完整片段:
$('#set').on('click', function () {
$(document).off('aCustomEventName');
$(document).on('aCustomEventName', function (event) {
alert('event caught');
});
});
$('#trigger').on('click', function () {
$(document).trigger("aCustomEventName");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
Click on Set Listener button a few times then click on the Trigger Event button..
</div>
<button id="set">Set Listener</button>
<button id="trigger">Trigger Event</button>
还有 fixed jsfiddle(与代码段相同)。
为什么
JQuery.on('sameEventName.',function(){...});
堆积取决于代码工作了多少次?有什么办法可以防止这种情况发生吗??
这是fiddle
我猜您想实现即使多次点击也只有 1 个事件侦听器的行为。尽管下面的方法并不理想,但它是最简单的解决方法。使用 .off
函数删除之前的事件侦听器。
$(document).off('aCustomEventName');
$(document).on('aCustomEventName', function(){...});
完整片段:
$('#set').on('click', function () {
$(document).off('aCustomEventName');
$(document).on('aCustomEventName', function (event) {
alert('event caught');
});
});
$('#trigger').on('click', function () {
$(document).trigger("aCustomEventName");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
Click on Set Listener button a few times then click on the Trigger Event button..
</div>
<button id="set">Set Listener</button>
<button id="trigger">Trigger Event</button>
还有 fixed jsfiddle(与代码段相同)。