我的大多数.on事件都使用闭包:
ref.on( 'child_added',
function( snapshot ) {
userCallback( snapshot.val() );
} );
Run Code Online (Sandbox Code Playgroud)
这意味着,无法使用.off()停用这些监视器,因为off需要原始回调指针以及eventType.我该怎么办?
我的应用程序(jQuery Mobile)是基于页面的.当用户点击某个页面时,我想激活监视器.当用户离开该页面时,我想要取消激活,所以当他们重新进入时,我最终不会有多个监视器.我想我只想用eventType调用.off()并删除所有回调.
现在唯一的选择是存储对回调的引用.我们实际上通过让.on()将它返回给你来使这更容易一些.所以你可以这样做:
var childCallback = ref.on('child_added', function(snapshot) { /* whatever */ });
// later...
ref.off('child_added', childCallback);
Run Code Online (Sandbox Code Playgroud)
但是我们收到了一些像你这样的反馈,说跟踪你的回调引用有时很麻烦.所以我们有一个计划的API更改,这样你就可以只使用一个事件类型或根本没有参数来调用.off(),我们只需要删除所注册的任何回调.但我们现在专注于其他功能,所以这个变化可能已经超过1个月了.
感谢您的反馈!
| 归档时间: |
|
| 查看次数: |
3515 次 |
| 最近记录: |