gpt4 book ai didi

javascript - Ext.mixin.Observable.on()/.un() : function reference not matching

转载 作者:行者123 更新时间:2023-11-28 02:19:16 25 4
gpt4 key购买 nike

我正在尝试使用 on()un() 函数(addListener 的别名)在运行时添加和删除监听器>删除监听器)。我从使用 Sencha 的 getCmp()

检索的组件实例中获取函数引用
Ext.Viewport.on('orientationchange', Ext.getCmp('foo').handleOrientationChange, foo, {buffer: 50});
Ext.Viewport.un('orientationchange', Ext.getCmp('foo').handleOrientationChange);

来自 sencha 文档:

un( eventName, fn, [scope], [options], [order] )

The handler to remove. This must be a reference to the function passed into the addListener call.

我不清楚为什么这不起作用。显然,第二个函数引用与第一个函数引用不匹配,但为什么会发生这种情况呢? Ext.getCmp('foo') 不应该返回相同的对象吗?

最佳答案

当调用removeListener时,您还需要传递与addListener中指定的相同范围,然后只有监听器会被删除

Ext.Viewport.un('orientationchange', Ext.getCmp('foo').handleOrientationChange, foo);
<小时/>
scope : Object (optional)
The scope originally specified for the handler. It must be the same as the scope argument specified in the original call to addListener or the listener will not be removed.

检查:

Sencha Docs

关于javascript - Ext.mixin.Observable.on()/.un() : function reference not matching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com