我一直在研究这个简单的测试代码,而我似乎无法使焦点和模糊事件正常工作。我想象的是用户将鼠标移到窗口上(触发焦点事件),然后用户将鼠标移出窗口(触发模糊事件)。不幸的是,事实并非如此,也许我只是误解了blur和focus。
Ext.create('Ext.window.Window', {
height: 300,
width: 300,
title: 'blah',
autoShow: true,
listeners: {
focus: function() {
alert('focused!');
},
blur: function() {
alert('blurred!');
}
}
});
现在,我确实找到了this Stack post ......非常有趣的是你可以将el放在听众中。不幸的是,看起来当页面加载时,窗口会获得焦点,然后立即失去它...如果我将鼠标悬停在它上面则相同。所以我很困惑。 API说你可以像其他听众一样使用焦点和模糊(没有提到将它包装在el中),但这篇文章说你需要将它包装在el中吗?
答案 0 :(得分:0)
这是JavaScript 101,我仍然弄错了。焦点和模糊适用于单击元素(获取视图焦点)和单击元素(失去视图焦点)时的情况。唯一奇怪的是,为什么window.focus()
实际上不会引发焦点事件?这很可能是因为它没有发生任何事件,但为什么会这样呢?你会认为一个名为focus的方法会触发焦点事件。