ExtJS浮动窗口焦点丢失检测



我想知道是否有一种有效的方法来检测浮动窗口是否失去焦点。我有一个浮动窗口用于用户的临时输入,我想做的是,如果用户在输入操作后忘记隐藏这个窗口(例如,点击其他地方),我会自动隐藏这个窗口。我试图在窗口的元素上使用模糊事件,但什么也没发生。一个工作演示:演示

谢谢你的任何想法!

这可以通过在ext窗口元素中添加模糊事件来实现,下面是示例代码

    Ext.applyIf(me, {
        items: [
            {
                xtype: 'button',
                text: 'Done',
                listeners: {
                    click: {
                        fn: me.onDoneButtonClick,
                        scope: me
                    }
                }
            }
        ],
        listeners: {
            el: {
                blur: {
                    fn: me.onWindowLoseFocus,
                    scope:me
                }
            }               
        }
    });

在检测窗口是否已模糊之前,首先需要执行一些操作来模糊窗口。你提到,如果用户"点击其他地方",你希望窗口变得模糊;您可以通过在您的主面板中添加一个监听器来实现这一点:

var mainPanel = new Ext.Panel({ //define a main non-floating panel
    title: 'main',
    id: 'mainPanel',
    width: 400,
    height: 400,
    listeners: {
        afterrender: function(self) {
            self.body.on('click', function() {
                alert('clicked')
            });
        }
    }
});

一旦面板主体被点击,你可以模糊floatWin,这样它正在监听的事件就会真正启动。

相关内容

  • 没有找到相关文章

最新更新