在使用javascript编程时会遇到一个问题,就是当你给html添加事件时,由于浏览器默认的为冒泡型事件触发机制,所以会触发你不想触发的事件.那么通过如下的函数可以解决这个问题。

1.阻止事件冒泡

function stopBubble(e) {
//如果提供了事件对象,则这是一个非IE浏览器
if ( e && e.stopPropagation )//因此它支持W3C的stopPropagation()方法
    e.stopPropagation();
else//否则,我们需要使用IE的方式来取消事件冒泡window.event.cancelBubble = true;
}

2.当按键后或者点击一个链接后,不希望按键或者链接执行时,可以取消返回值.即停止默认事件默认行为

//阻止浏览器的默认行为
function stopDefault( e ) {//阻止默认浏览器动作(W3C)if ( e && e.preventDefault )e.preventDefault();//IE中阻止函数器默认动作的方式elsewindow.event.returnValue = false;return false;
}

 示例 : 点击页面的任何URL链接 不跳转。

var links=document.getElementsByTagName('a');for(var i=0;i<links.length;i++){links[i].onlick=function(e){alert('我不跳转,点我也没用');stopDefault(e)}}

另一个阻止冒泡常见的应用就是下拉菜单的效果,点击按钮,下拉菜单显示,在点击页面任何其它部分,下拉菜单隐藏。

 //给document添加点击事件,点击时关闭菜单,默认情况下,点击任何元素,都会冒泡的到document

document.onclick=function(){
b.style.display="none";
}//为点击元素显示下拉菜单的元素阻止冒泡,这样document的click事件就被阻止执行function showMenu(e) {
var e=window.event || e;
下拉菜单.style.display="block";
if(e.stopPropagation){
e.stopPropagation()}
else{e.cancelBubble=true;}
}点击按钮.onclick=下拉菜单.οnclick=showMenu;

转载于:https://www.cnblogs.com/yaojaa/archive/2013/01/28/2880050.html

javascript 阻止冒泡和浏览器的默认行为相关推荐

  1. javascript阻止事件冒泡和浏览器的默认行为

    http://www.aspxhome.com/javascript/skills/200712/262128.htm 就是说用Div框住flash  Div的鼠标事件不传递给Body 文中说的方法记 ...

  2. JavaScript阻止冒泡和取消默认事件(默认行为)

    JavaScript冒泡和捕获是事件的两种行为,使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播.使用event.preventDefault()可以取消 ...

  3. 阻止冒泡在浏览器的兼容问题

    // 情景就是一个点击事件我想阻止冒泡,同时需要兼容ie的浏览器toogle(event ) {event || (event = window.event) event.stopPropagatio ...

  4. JavaScript阻止冒泡函数

    function stopPropagation(e){e = e || window.event;if(e.stopPropagation){//W3C阻止冒泡的方法e.stopPropagatio ...

  5. Javascript阻止冒泡方法

    阻止冒泡的方法 w3c的方法:(火狐.谷歌.IE11) event.stopPropagation() IE10以下则是: event.cancelBubble= true

  6. javascript阻止冒泡和默认行为

    js冒泡和捕获是事件的两种行为,使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播.使用event.preventDefault()可以取消默认事件. 在说 ...

  7. JavaScript 阻止冒泡和捕获

    防止冒泡和捕获: W3C的方法是e.stopPropagation(), IE的方法是:e.cancelBubble = true. 取消默认事件:W3C的方法是e.preventDefault(), ...

  8. 如何阻止浏览器的默认行为?

    如何阻止浏览器的默认行为? 什么是默认行为? 默认行为,就是不用我们注册,其本身就存在的事情 比如我们点击鼠标右键的时候,会自动弹出一个菜单 比如我们点击 a 标签的时候,我们不需要注册点击事件,他自 ...

  9. jquery阻止冒泡事件行为发生

    <div οnclick="a()"> <p οnclick="b()"></p> </div> div和p元素 ...

最新文章

  1. docker常用命令详解
  2. 转:IE iframe不刷新的问题之完美解决
  3. define 函数定义注意
  4. php 对接 asp,PHP模拟asp中response类实现方法
  5. SAP Analytics Cloud model数据的转置功能
  6. JBoss EAP 7快速入门
  7. basic knowledge
  8. 启航RPA卓越生态联盟,艺赛旗打造最强RPA产业生态圈...
  9. QT新建项目显示项目未配置的原因与解决方案
  10. 数据库:mysql内置功能-函数
  11. pytorch中lr_scheduler的使用
  12. 数据结构笔记(十八)-- 树的定义和基本术语
  13. linux能力集机制,linux能力机制
  14. ENVI5.3下载和安装
  15. 计算机网络第七版1-3
  16. 荷兰国旗问题+快速排序
  17. visio增加连接点
  18. 本周(12.23-12.29)半价电子书 1
  19. u盘超级加密3000使用方法
  20. 干货|软件开发,小步真能快跑吗?

热门文章

  1. Android开发笔记(一百三十七)自定义行为Behavior
  2. 互联网公司面试必问的mysql题目
  3. CentOS7单独安装Apache Bench压力测试工具
  4. python3 连接数据库~
  5. Winform文件下载之WebClient
  6. jquery1.9+获取append后的动态元素
  7. 【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧(指定开始帧)以及扩展Cocos2d源码的CCAnimation简化动画创建!...
  8. (2)把BlackBerry作为插件安装到已有的Eclipse中
  9. The DotNet Garbage Collection
  10. 技术:叫我怎么爱上你