我想知道是否有一種有效的方式來檢測浮動窗口是否失去焦點。我有一個用戶臨時輸入的浮動窗口,如果用戶在輸入操作後忘記隱藏它(例如,在其他地方點擊),我想要做的就是自動隱藏此窗口。我試圖在窗口元素上使用模糊事件,但沒有發生任何事情。 一個工作演示:demoExtJS浮動窗口焦點丟失檢測
感謝您的任何想法!
我想知道是否有一種有效的方式來檢測浮動窗口是否失去焦點。我有一個用戶臨時輸入的浮動窗口,如果用戶在輸入操作後忘記隱藏它(例如,在其他地方點擊),我想要做的就是自動隱藏此窗口。我試圖在窗口元素上使用模糊事件,但沒有發生任何事情。 一個工作演示:demoExtJS浮動窗口焦點丟失檢測
感謝您的任何想法!
在您可以檢測窗口是否已經模糊不清之前,首先需要採取一些措施來模糊窗口。你提到,如果用戶「在其他地方點擊」,你會想要一個窗口模糊;你可以通過添加一個監聽到你的mainPanel做到這一點:
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這樣的事件被監聽實際火災。
這是可以實現添加模糊事件分機窗口元素,下面是示例代碼
Ext.applyIf(me, {
items: [
{
xtype: 'button',
text: 'Done',
listeners: {
click: {
fn: me.onDoneButtonClick,
scope: me
}
}
}
],
listeners: {
el: {
blur: {
fn: me.onWindowLoseFocus,
scope:me
}
}
}
});
感謝您的回覆。不過,它僅適用於mainPanel中的屍體。在我的真實應用程序中,還有其他幾個容器,包括其他一些容器,我認爲爲每個容器註冊'點擊'事件並不是一個好主意。 – Simon 2012-02-06 18:33:30