yic*_*yic 15 javascript javascript-events event-bubbling event-propagation
我正在查看http://www.quirksmode.org/js/events_order.html,这部分内容不明确:
在Microsoft模型中,您必须将事件的
cancelBubble属性设置为true.Run Code Online (Sandbox Code Playgroud)window.event.cancelBubble = true在W3C模型中,您必须调用事件的
stopPropagation()方法.Run Code Online (Sandbox Code Playgroud)e.stopPropagation()这会阻止事件在冒泡阶段的所有传播.
所以我的问题是:
e.stopPropagation()停止传播,或者这只适用于泡沫阶段?LeO*_* Li 25
简答:订单是:
如果调用e.stopPropagation()在捕获阶段(通过设置addEventListener()的第三个参数来true),它停在1,SO 2和3不能接收.
如果调用e.stopPropagation()在泡沫阶段(通过设置addEventListener()的第三个参数来false或只是没有给它分配),1&2已经完成,所以它只是阻止事件,在那里您拨打水平冒泡stopPropagation().
不,事件侦听器不会阻止任何事件的传播,除非您明确告知。您所指的部分专门涉及泡沫阶段。IE的模型不支持事件捕获-句号停止。捕获阶段是冒泡阶段之前的阶段:
Top of the DOM --->event--->traverses--->to--->[target]+[event]-| (capture phase)
/\ \/
|------------------------to--------back up----------------- (bubble up)
Run Code Online (Sandbox Code Playgroud)