几分钟前,我回答了这个问题:
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);
});
focusin
和focusout
给我e.bubbles == false
这是jQuery的错误还是我错过了明显的错误?
答案 0 :(得分:4)
听起来像是jQuery中的一个错误。您是否在支持focusin
和focusout
的浏览器上进行了本地测试? (例如,IE?)因为如果没有,你正在测试jQuery模拟支持的标志。
我已经删除了上面的“听起来像一个bug”,因为jQuery没有声称规范化文档中的bubbles
属性。因此,由于它不能保证它,它不必在模拟事件上支持它。 (请注意,如果我在IE7上运行您的演示,我会得到undefined
,因为IE7不支持DOM3事件bubbles
属性。)仍然是问题,但可能不是错误。 : - )
<强>更新强>:
对the jQuery ticket的回复:
该文档未声明规范化event.bubbles属性。您可以在event.originalEvent中查找它,但这将是平台提供的任何非标准化的。
所以我上面的猜测是正确的。这不是 bug ,因为他们没有声称将其标准化。 : - )