stopImmediatePropagation停止当前节点和后续节点的事件侦听

本来是想提问的,关于stopPropagation和stopImmediatePropagation的区别
后来研究了一下,终于明白了stopImmediatePropagation的作用,总结就是“可以阻止掉同一事件的其他优先级较低的侦听器的处理”

比如以下代码:

  1. this.addEventListener(MouseEvent.MOUSE_DOWN, funA,false,2);
  2. this.addEventListener(MouseEvent.MOUSE_DOWN, funB,false,1);
  3. function funA (evt:MouseEvent):void
  4. {
  5.         trace ("A!");
  6.         evt.stopImmediatePropagation ();
  7. }
  8. function funB (evt:MouseEvent):void
  9. {
  10.         trace ("B!");
  11. }

因为侦听器funA的优先级为2比funB高,所以先执行了funA,而在funA里面有evt.stopImmediatePropagation ();因此funB没有被执行  输出结果就是一个"A"。 

 

stopPropagation
停止后续节点的事件侦听,当前节点注册的侦听器可用。如funA和funB,后续则不可用。

stopImmediatePropagation
停止当前节点和后续节点的事件侦听,有优先级,则按优先级顺序,无优先级则按注册侦听器的顺序。即执行到发出stopImmediatePropagation命令的侦听器后面的侦听器不可用。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值