我在webOS应用程序中有几个事件监听器,我设置的每个都是这样的:
this.controller.listen(
'aWidget',
Mojo.Event.widgetEvent,
this.respondToWidgetEvent.bindAsEventListener(this)
);
为了停止收听,我写了这样的代码:
this.controller.stopListening(
'aWidget',
Mojo.Event.widgetEvent,
this.respondToWidgetEvent.bindAsEventListener(this)
);
然而,我现在意识到我的听众可能不会停下来。当我在一个函数上调用bindAsEventListener
时,我每次都会找回同一个对象吗?如果没有,stopListening
确实会确保删除相应的侦听器吗?
答案 0 :(得分:1)
如果我没记错的话,每次调用bindAsEventListener()都会返回一个新实例。通过调用一次并设置var:
来阻止该操作bindToWidget = this.respondToWidgetEvent.bindAsEventListener(this);
this.controller.listen(
'aWidget',
Mojo.Event.widgetEvent,
bindToWidget
);
this.controller.stopListening(
'aWidget',
Mojo.Event.widgetEvent,
bindToWidget
);