stopPropagation() 与 stopImmediatePropagation() 都能阻止后续的侦听行为,即能阻挡掉事件流中事件的冒泡,简而言之就是让后面的侦听都不执行。
两者的区别在于,stopImmediatePropagation 会让当前对象的次优先级的所有监听都不执行,
一般情况下两者用哪个都可以,但比如下面代码,这种使用stopImmediatePropagation()更有效
addEventListener(MouseEvent.MOUSE_DOWN,down,false,2);
addEventListener(MouseEvent.MOUSE_DOWN,down2,false,1);
function down(event:MouseEvent):void
{
trace("I...do");
event.stopImmediatePropagation();
}
function down2(event:MouseEvent):void
{
trace("I...do,too");
}
两者的区别在于,stopImmediatePropagation 会让当前对象的次优先级的所有监听都不执行,
一般情况下两者用哪个都可以,但比如下面代码,这种使用stopImmediatePropagation()更有效
addEventListener(MouseEvent.MOUSE_DOWN,down,false,2);
addEventListener(MouseEvent.MOUSE_DOWN,down2,false,1);
function down(event:MouseEvent):void
{
trace("I...do");
event.stopImmediatePropagation();
}
function down2(event:MouseEvent):void
{
trace("I...do,too");
}
本文解析了stopPropagation()与stopImmediatePropagation()的区别与应用场景。前者阻止事件冒泡,后者还阻止同一优先级的其他监听器执行。通过实例展示了如何选择合适的事件阻止方法。
1615

被折叠的 条评论
为什么被折叠?



