如何使jQuery`bind`或`on`事件处理程序具有幂等性

wrs*_*der 3 javascript jquery javascript-events idempotent

有没有办法可以调用$(selector).bind('click', handler)$(selector).on('click', handler)多次调用处理程序只能连接一次?

现在,我有多个具有不同成功回调的AJAX处理程序,每个回调都在页面上重新呈现一组不同的元素.理想情况下,我想将"重新连接事件"例程重构为单个函数而不是所有例程.

我现在想到的唯一方法是明确解除绑定,例如:

$(selector).off('click');
$(selector).on('click', handler);
Run Code Online (Sandbox Code Playgroud)

寻找一种自动执行此类操作的方法.

Mis*_*mes 5

更好的方法是将.on调用移动到容器.如果您有一个容器,那么它.on将会应用于与您的选择器匹配的任何现有或新的子项:

$(container-selector).on("click", "element-selector", function(event){
// do stuff
});
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/on/

干杯.