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