我做了一个小测试代码,因为我不确定是否可以在调用它们的范围之外关闭侦听器,我想知道为什么在我的测试代码中,当我在 .off 方法中包含回调时,代码没有更长的时间似乎工作。
var testobj = {
init: function() {
testobj.listener();
},
listener: function() {
$(document).on('mousedown', function() {
testobj.listener_off();
console.log("on");
});
},
listener_off: function() {
$(document).on('mouseup', function() {
$(document).off('mousedown', function() {
console.log("off");
});
});
}
}
$(function() {
testobj.init();
});
所以再一次,问题是:
$(document).off('mousedown', function() {
console.log("off");
});
似乎破坏了代码,同时使用:
$(document).off('mousedown');
似乎工作得很好。
此外,在处理多个事件侦听器(尤其是那些对同一事件做出反应的事件侦听器)时,调用它们的最佳实践是什么?我是否正确地将它们分成单独的函数,以便稍后调用它们或者可能会导致问题?