JQuery.on()堆积如山

时间:2015-02-15 03:50:58

标签: jquery events

为什么

JQuery.on('sameEventName.',function(){...});

根据代码的工作时间来累积?有没有办法防止这种情况?

以下是fiddle

1 个答案:

答案 0 :(得分:1)

我想你想要实现甚至多次点击的行为,只有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(与代码段相同)。