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这个事件的理解有误?那如果这样的话,应该如何实现这个需求?谢谢ext4JavaScript

解决方案 »

  1.   

    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(); });
        });