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)
归档时间: |
|
查看次数: |
10892 次 |
最近记录: |