我在一个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是否确保删除适当的侦听器?
发布于 2011-04-15 00:11:01
如果我没记错的话,每次调用bindAsEventListener()都会返回一个新实例。通过调用一次并设置var来阻止该操作:
bindToWidget = this.respondToWidgetEvent.bindAsEventListener(this);
this.controller.listen(
'aWidget',
Mojo.Event.widgetEvent,
bindToWidget
);
this.controller.stopListening(
'aWidget',
Mojo.Event.widgetEvent,
bindToWidget
);https://stackoverflow.com/questions/5664810
复制相似问题