如果我不是從事件回調中返回false
,或者使用jQuery的e.stopPropagation
功能,則該事件會冒泡DOM。停止事件冒泡 - 提高性能?
在大多數情況下,我不在乎事件是否起泡。就像這個DOM結構示例:
<div id="theDiv">
<form id="theForm" >
<input type="submit" value="submit"/>
</form>
</div>
通常情況下,我沒有多重嵌套提交回調是這樣的:
$('#theDiv').submit(function() {
alert('DIV!');
});
$('#theForm').submit(function(e) {
alert('FORM!');
e.preventDefault();
});
Fiddle
該演示展示了submit
事件冒泡到<div>
!
如果我停止傳播或只是防止默認,那對我來說沒有什麼不同。
在這些情況下,如果我停止傳播,我會獲得性能好處嗎?
它應該沒有任何影響,甚至可能是因爲瀏覽器始終會觸發數百萬個事件,所以只有在有監聽器時纔會觸發它們。 – RobG 2012-03-16 02:11:58
@RobG。這就是爲什麼我想取消它... – gdoron 2012-03-16 02:14:18
爲什麼你不基準它?理論上,停止傳播=少做=快。在實踐中,它取決於瀏覽器的實現細節,並且可能不會以任何方式引人注目。 – deceze 2012-03-16 02:22:50