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

几分钟前,我回答了这个问题:
jQuery中focusin / focusout与focus / blur有什么区别?

答案是:

简短的回答: 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的错误还是我错过了这里的明显问题?

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

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


更新

对jQuery票证的响应:

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

所以我上面的猜测是正确的。 这不是一个错误 ,因为他们没有声称将其正常化。 🙂

Interesting Posts