在窗口外单击时如何关闭/隐藏窗口?

Posted

技术标签:

【中文标题】在窗口外单击时如何关闭/隐藏窗口?【英文标题】:How to close/hide a Window when clicking outside the Window? 【发布时间】:2013-07-10 14:19:28 【问题描述】:

我想在窗口外点击时关闭一个窗口, 我想我需要像窗口后面的掩码上的点击处理程序(是的,它的 modal=true)或窗口上的“onLooseFocus”处理程序......我试过这个:

windowX.Listeners.Show.Handler = "Ext.select('.ext-el-mask').addListener('click', function() Ext.getCmp('windowX').hide(););";

但它不起作用,Firebug 中也没有错误,所以我找不到错误 - 任何人都可以帮助我吗?

编辑:我正在使用 Ext.Net 2.2

【问题讨论】:

【参考方案1】:

我找到this on the ext.net forums

    <ext:Window runat="server" Modal="true">
    <Listeners>
        <Show Handler="this.mask.on('click', function () 
                            alert('I am the Mask!');
                        );"
                Single="true" />
    </Listeners>
    </ext:Window>

编辑

由于它不起作用,返回extjs是最好的解决方案,在this answer的帮助下代码变成了

    <ext:Window runat="server" Modal="true">
    <Listeners>
        <Show Handler="this.mon(Ext.getBody(), 'click', function (el, e) 
            this.close(this.closeAction);
        , this,  delegate: '.x-mask' );"
                Single="true" />
    </Listeners>
    </ext:Window>

【讨论】:

他们一定改变了这个,没有用。抱歉,我没有提到我的 Ext.Net 版本 - 它是 2.2 是的!非常感谢!

以上是关于在窗口外单击时如何关闭/隐藏窗口?的主要内容,如果未能解决你的问题,请参考以下文章

在窗口外单击时自动关闭模态,但如果在模态窗口内单击则保持打开状态[重复]

在 ExtJS 4.1 中单击外部窗口时如何关闭窗口?

如何关闭 WPF 中隐藏的主窗口?

QT在子窗口外单击关闭子窗口

Winforms:在对话框外单击时关闭模式对话框

单击时隐藏菜单(平板电脑)[关闭]