我正在使用 extjs 4.2.1,当用户单击登录面板(在浏览器的白色区域中)时,我试图关闭登录表单面板。我想知道我应该使用哪个事件来检查用户是否在 extjs 中单击了侧登录面板,以及如何使用该事件关闭面板。
任何人都可以帮助我以更好和简单的方式理解它,或者任何能让我易于理解的小代码片段。提前致谢....
您可以在 body 元素上注册一个侦听器。这是一个简单的例子:
var panel = new Ext.Panel({
cls: 'the-panel',
width: 400,
height: 400,
renderTo: Ext.getBody()
});
Ext.getBody().on('click', function (event) {
var targEl = Ext.get(event.getTarget());
if (targEl === panel.getEl() || targEl.up('.the-panel')) {
//clicked on or within the panel, do nothing
} else {
panel.close();
}
});
您可能希望增强上面的示例,以便在面板关闭后取消注册事件。
handler: function(button, e) {
success: function(form, action) {
button.up('.window').close();
},
}