Javascript jqueryoff未解除绑定
我正在编写一个通用控件(使用ember.js),它需要捕获所有点击。根据用户单击的位置,我需要执行自定义逻辑。(例如,单击外部将隐藏元素。单击输入将显示下拉列表) 不幸的是,我无法在关闭控件时正确解除事件绑定。尽管解除绑定/关闭代码已运行,但上述逻辑仍将运行。(其他一切正常) 我是这样注册活动的:Javascript jqueryoff未解除绑定,javascript,ember.js,jquery,Javascript,Ember.js,Jquery,我正在编写一个通用控件(使用ember.js),它需要捕获所有点击。根据用户单击的位置,我需要执行自定义逻辑。(例如,单击外部将隐藏元素。单击输入将显示下拉列表) 不幸的是,我无法在关闭控件时正确解除事件绑定。尽管解除绑定/关闭代码已运行,但上述逻辑仍将运行。(其他一切正常) 我是这样注册活动的: $('body').on('click.autocomplete' + this.elementId, function (e) { .. }); $('body').off('click.auto
$('body').on('click.autocomplete' + this.elementId, function (e) {
..
});
$('body').off('click.autocomplete' + this.elementId);
然后像这样取消注册:
$('body').on('click.autocomplete' + this.elementId, function (e) {
..
});
$('body').off('click.autocomplete' + this.elementId);
如何才能正确解除事件绑定
更新:
我能够更准确地指出这个问题。关闭视图时,该事件在调用()之前再次触发,但之后仍会运行
解决方案修复程序如下所示:
$('body').on('click.autocomplete' + this.elementId, function (e) {
if (!self.elementId)
return;
});
不过,在取消时清除特定的事件队列会很好 这绝对有效。请看这里的示例:它是人为的,但它显示了过程。您是否使用willDestroyElement钩子解除绑定?@CodeJack:是的,我使用的是willDestroyElement钩子hook@ZenMaster:好的。谢谢你的再次保险。然后它可能会归结为一个与余烬相关的问题。
$('button')。解除绑定('click')