您的位置:首页 > 运维架构

事件的stopImmediatePropagation和stopPropagation

2012-05-04 12:52 375 查看
首先看看官方API的说法:

stopImmediatePropagation () 方法 :防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。此方法会立即生效,并且会影响当前节点中的事件侦听器。相比之下,在当前节点中的所有事件侦听器都完成处理之前,stopPropagation() 方法不会生效。

stopPropagation () 方法 防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。此方法不会影响当前节点 (currentTarget) 中的任何事件侦听器。相比之下,stopImmediatePropagation() 方法可以防止对当前节点中和后续节点中的事件侦听器进行处理。对此方法的其它调用没有任何效果。可以在事件流的任何阶段中调用此方法。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

官方的有点晦涩难懂,通俗易懂一些的理解就是:

stopImmediatePropagation 影响了当前节点监听的事件处理和后续节点的事件监听处理,比如说当前节点有2个监听器处理函数Fun1和Fun2(有先后之分).执行了stopImmediatePropagation ()方法后。Fun2不执行。如果是stopPropagation
()方法则可以执行。当然在冒泡机制下的第三阶段和捕获机制下的第二阶段的监听处理将不会被执行。

stopPropagation 则不对当前节点的监听器处理和当前节点的其他监听处理造成影响,只对后续节点造成影响(在冒泡机制下的第三阶段的监听处理不执行)(捕获阶段的第二阶段的监听处理不执行)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: