9

几分钟前,我回答了这个问题:
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);
});​

focusinfocusoute.bubbles == false

它是 jQuery 的错误还是我在这里错过了明显的东西?

4

1 回答 1

4

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

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


更新

对jQuery 票的回应:

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

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

于 2012-05-14T13:43:50.803 回答