【问题标题】:Floating tree panel's blur listener not called未调用浮动树面板的模糊侦听器
【发布时间】:2014-01-28 19:01:22
【问题描述】:

我有一个浮动树面板,当我单击它时,它会在组合框下方显示 (showBy)。我想在树面板外单击以将其隐藏,因此我正在尝试粘贴在下面的模糊侦听器。但是在面板外部单击时不会调用模糊侦听器。

                    blur: function(tree, event, opts) {
                        treePanel.setVisible(false);
                    }

我还尝试在树面板的“el”上设置模糊侦听器,但是单击树节点本身会触发此侦听器。我不完全明白为什么会这样。

                    el: {
                        blur: function() {
                            treePanel.setVisible(false);
                        }
                    }

有人可以建议我应该如何解决这个问题吗?谢谢。

【问题讨论】:

  • 你能让焦点事件触发吗?也许它永远不会真正聚焦,所以它永远不会失去焦点。此外,如果您发布更多代码,也许在一个工作的 jsfiddle 中,它会更容易调试。
  • 焦点事件也不会触发。我检查了 document.activeElement 并显示了树视图 div。

标签: layout extjs4 extjs4.1 extjs4.2 treepanel


【解决方案1】:

您必须将焦点设置在浮动网格上。 blur 仅在组件失去焦点时才有效。要想散焦,必须先得到焦。

在您的代码中将 treePanel.setVisible(true); 替换为

treePanel.setVisible(true)
treePanel.focus()

【讨论】:

    猜你喜欢
    • 2012-06-07
    • 2012-04-30
    • 2019-07-25
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多