我有一个函数将jQuery委托处理程序附加到元素的click事件:
function foo() {
$(document).delegate("#fooElement", "click, function(event) {
});
}
foo函数可能在页面的整个生命周期中被多次调用,并且有时可以删除处理程序。确保最多只能一次连接此处理程序的一次实例的最佳方法是什么?我应该做这样的事情来删除处理程序然后重新附加它:
function foo() {
$(document).undelegate().delegate("#fooElement", "click, function(event) {
});
}
或者我是否需要跟踪布尔值isHandlerAttached
。理想情况下,有一种更简洁的方法可以做到这一点,但我还没有在jQuery文档中找到任何内容。
答案 0 :(得分:0)
文档是一个非常通用的元素,每个人都添加事件,所以我建议名称间隔事件名称。代表& undelegate已被弃用,您应该使用on / off
$(document).off('click.foo', '#fooElement').on('click.foo', '#fooElement', function(e) {
// put your logic in here
})