未调用浮动树面板的模糊侦听器

Posted

技术标签:

【中文标题】未调用浮动树面板的模糊侦听器【英文标题】: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。 【参考方案1】:

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

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

treePanel.setVisible(true)
treePanel.focus()

【讨论】:

以上是关于未调用浮动树面板的模糊侦听器的主要内容,如果未能解决你的问题,请参考以下文章

在 ext.net 树面板的特定节点上使用直接事件

在应用程序中侦听背景中的触摸事件

未调用 XEP-0022 的 SMACK 消息侦听器

在 Panel 中使用渲染时未调用 Primefaces Ajax 侦听器

未调用 Android MotionLayout 过渡侦听器

更新身份验证状态时未调用 Bloc 侦听器?