答案 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(与代码段相同)。