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

gdo*_*ica 9 javascript jquery focusin

几分钟前,我回答了一个问题:
在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);
});?
Run Code Online (Sandbox Code Playgroud)

focusinfocusout给我e.bubbles == false

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

T.J*_*der 4

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

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


更新

对jQuery 票证的回复:

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

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