javascript - 仅根据函数名称从组件中删除事件监听器 - Ext Js

标签 javascript extjs

好吧,我有一个视口(viewport)分为两半,顶部和底部。上半部分有始终可见的组合框和输入字段,下半部分有一个带有多个选项卡的选项卡面板。

当我更改上半部分的静态组合框之一时,我将其称为组合框 A,它会在其事件处理程序 A_handler 中触发一个事件>,它将尝试在其中一个选项卡中设置另一个组合框的样式,我将其称为组合框 B,但它可能会执行以下两种操作之一。

组合框 B 在选项卡 2 上可见,而不是 1

那么:

1) 如果选项卡 1 处于事件状态,它将设置一个事件处理程序,以在选项卡 2 处于事件状态时设置组合框 B 的样式.

2)否则,它会立即设置样式。

所以问题是:初始组合框 A 可以使用两种可能的方式之一设置组合框 B 的样式,具体取决于选择,例如 red 蓝色

想象一下选项卡 1 可见的情况,我选择将 B 样式设置为 red 的选项,那么事件处理程序是为激活选项卡 2 时创建。但是,然后,在不激活选项卡 2 的情况下,我在组合 A 中再次更改选项,以使框 B蓝色 >.

此时,我需要它删除第一个事件处理程序,以便只触发一个事件处理程序。

我没有对事件处理程序的引用,但我已经命名了它们。

我已经创建了函数来获取选项卡2上的事件监听器列表,并且知道要删除的监听器的名称,因此我可以匹配名称,但是当我尝试使用选项卡的 removeListener 删除它们,所以什么也不会发生。

最佳答案

您可以将事件处理程序设置为仅工作一次:

someItem.on('event', function() {
    // ... bla bla bla ...
}, scope, {single:true});

关于javascript - 仅根据函数名称从组件中删除事件监听器 - Ext Js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460129/

相关文章:

javascript - 访问 Handlebars 模板内的数据属性值

javascript - 获取数组中所有LI元素

javascript - ExtJS监听器: anonymous function parameters

javascript - 多选复选框不返回 Extjs 4.2 网格中的值

javascript - 如何将点击处理程序应用于模板内的多个元素 -EXTJS

javascript - ExtJS RowButton 取消行选择

javascript - 带有 ajax 的 JQuery 不断发布多个结果

javascript - 使用 RxJS 进行 D3 选择事件

javascript - 函数的运行时上下文(this)来自this.props

javascript - 尝试使用 Rally SDK 2.0rc3 提供的 DeepCopy 函数来复制 MMF/Feature 获取错误对象不是函数