为什么event.bubbles对于“focusin”和“focusout”来说是假的?

时间:2012-05-14 13:40:57

标签: javascript jquery focusin

几分钟前,我回答了这个问题:
 What is the difference between focusin/focusout vs focus/blur in jQuery?

答案是:

简短回答:focusin气泡,focus没有。
focusout气泡,blur没有。

我测试了它,这是真的,但我在尝试设置DEMO时遇到了一个奇怪的事情:

$('#test').on('focusin focusout focus blur change', function(e) {
    console.log(e.type + 'event bubles? : ' + e.bubbles);
});​

focusinfocusout给我e.bubbles == false

这是jQuery的错误还是我错过了明显的错误?

1 个答案:

答案 0 :(得分:4)

听起来像是jQuery中的一个错误。您是否在支持focusinfocusout的浏览器上进行了本地测试? (例如,IE?)因为如果没有,你正在测试jQuery模拟支持的标志。

我已经删除了上面的“听起来像一个bug”,因为jQuery没有声称规范化文档中的bubbles属性。因此,由于它不能保证它,它不必在模拟事件上支持它。 (请注意,如果我在IE7上运行您的演示,我会得到undefined,因为IE7不支持DOM3事件bubbles属性。)仍然是问题,但可能不是错误。 : - )


<强>更新

the jQuery ticket的回复:

  

该文档未声明规范化event.bubbles属性。您可以在event.originalEvent中查找它,但这将是平台提供的任何非标准化的。

所以我上面的猜测是正确的。这不是 bug ,因为他们没有声称将其标准化。 : - )