zl程序教程

您现在的位置是:首页 >  前端

当前栏目

JavaScript阻止事件冒泡示例分享

JavaScript事件 示例 分享 阻止 冒泡
2023-06-13 09:15:38 时间

之前遇到事件冒泡的问题,也去网上搜索了一番,结果大部分都是一样的代码,贴来用时也不太顺利。涉及到FF时,可以用e.stopPropagation();,不知怎地我没用成功。不过我发现FF支持e.cancelBubble=true;的写法,经测试可行。就把代码贴在这里吧,省得以后到处找。IE以前版本的兼容性还没测试,用到时再完善吧。

 

复制代码代码如下:

//取消事件冒泡
functionstopBubble(e){
   varevt=(e)?e:window.event;//兼容FF
   evt.cancelBubble=true; //evt.stopPropagation(); FF下阻止冒泡,据说可以用
};

另:

1、cancelBubble(HTMLDOMEvent对象属性):如果事件句柄想阻止事件传播到包容对象,必须把该属性设为true。

2、stopPropagation(HTMLDOMEvent对象方法):终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。

3、preventDefault(HTMLDOMEvent对象方法)通知浏览器不要执行与事件关联的默认动作。

例子:
   functionstopBubble(e) 
   { 
       if(e&&e.stopPropagation) 
           e.stopPropagation() 
       else
           window.event.cancelBubble=true
   } 

把这个stopBubble(e)函数放到你想要的阻止事件冒泡函数里面就可以阻止事件冒泡了