我正在编写一个通用控件(使用ember.js),它需要捕获所有点击。根据用户点击的位置,我需要执行自定义逻辑。 (例如,单击外部,将隐藏元素。单击输入将显示下拉列表。)
不幸的是,关闭控件时我无法正确解除绑定事件。上面的逻辑仍将运行,尽管unbind / off代码已经运行。 (其他一切都很好)
我正在注册这样的活动:
$('body').on('click.autocomplete' + this.elementId, function (e) {
..
});
并将其取消注册:
$('body').off('click.autocomplete' + this.elementId);
如何正确解开事件?
更新 我能够更精确地确定问题。关闭视图时,事件在调用off()之前再次触发,但仍然在之后运行。
解决方法修复如下:
$('body').on('click.autocomplete' + this.elementId, function (e) {
if (!self.elementId)
return;
});
在调用时清除特定事件队列会很高兴,但是..