Extjs4 Ext JS 4:Ext.组件焦点和模糊事件

Extjs4 Ext JS 4:Ext.组件焦点和模糊事件,extjs4,focus,extjs4.2,blur,Extjs4,Focus,Extjs4.2,Blur,我一直在编写这个简单的测试代码,但我似乎无法使焦点和模糊事件正常工作。我想象的是,用户将鼠标移到窗口上(触发焦点事件),然后用户将鼠标移出窗口(触发模糊事件)。不幸的是,事实并非如此,也许我只是误解和误解 现在,我确实发现。。。非常有趣的是,你可以像那样把el放在听众里面。不幸的是,当页面加载时,窗口会获得焦点,然后立即失去焦点。。。如果我在上面悬停也一样。所以我很困惑。API说你可以像其他监听器一样使用焦点和模糊(没有提到用el包装),但这篇文章说你需要用el包装它?这是JavaScript

我一直在编写这个简单的测试代码,但我似乎无法使焦点和模糊事件正常工作。我想象的是,用户将鼠标移到窗口上(触发焦点事件),然后用户将鼠标移出窗口(触发模糊事件)。不幸的是,事实并非如此,也许我只是误解和误解


现在,我确实发现。。。非常有趣的是,你可以像那样把el放在听众里面。不幸的是,当页面加载时,窗口会获得焦点,然后立即失去焦点。。。如果我在上面悬停也一样。所以我很困惑。API说你可以像其他监听器一样使用焦点和模糊(没有提到用el包装),但这篇文章说你需要用el包装它?

这是JavaScript 101,我还是弄错了。焦点和模糊分别用于单击图元(获得视图焦点)和单击图元外(失去视图焦点)时。唯一奇怪的是,为什么
window.focus()
实际上没有触发焦点事件?这很可能是因为它没有触发任何事件,但为什么呢?您可能会认为名为“聚焦”的方法会触发聚焦事件。

我认为您误解了聚焦和模糊。据我所知,鼠标移到某物上并不能使其聚焦,因此不会触发聚焦事件。接收焦点的一个例子是在文本字段内单击。因此我认为这是另一种可能性,但单击窗口/拖动窗口仍然无法获得焦点。
div
没有焦点事件,这可能是您正在单击的底层HTML元素。只有特定的HTML标记可以被“关注”,尽管我不能确切地告诉你是哪一个。有趣。因此,这似乎是一个非常无用的事件……而且,调用
win.focus()
(其中
win
是我上面创建的)也不会触发focus事件。。。这确实让我感到困惑,但我想那是因为专注不会引发任何事件。
Ext.create('Ext.window.Window', {
  height: 300,
  width: 300,
  title: 'blah',
  autoShow: true,
  listeners: {
    focus: function() {
      alert('focused!');
    },
    blur: function() {
      alert('blurred!');
    }
  }
});