日期:2014-05-16  浏览次数:20464 次

Ext4 window的blur事件无效果?
var window  = Ext.create('Ext.window.Window',{
 //title: '请输入商品',
 height: 200,
 width: 250,
 border :false,
 closable: false,
 layout:'fit',
 listeners:{
 blur : function(){
   alert("123");
 }
}
});
window.show();
 

我想当用户点击页面上面任何一个地方,除了这个window本身,就把这个window给关了。貌似不行。后台也不报错,alert出不来。是我对blur这个事件的理解有误?那如果这样的话,应该如何实现这个需求?谢谢
ext4 JavaScript

------解决方案--------------------
window是div模拟的,div没有blur事件,输入控件才有

可以给document增加click事件,判断点击对象是否被包含在窗体内就行。。

变量名不要起和系统一样的,要不出问题你就知道错。。

    Ext.onReady(function () {
        var win = Ext.create('Ext.window.Window', {
            //title: '请输入商品',
            height: 200,
            width: 250,
            border: false,
            closable: false,
            layout: 'fit',
            listeners: {
                blur: function () {
                    alert("123");
                }
            }
        });
        win.show();

        Ext.get(document).on('click', function (evt, el) { if (!win.getEl().contains(el)) win.close(); });


    });