JavaScript实现事件的中断传播和行为阻止方法示例


Posted in Javascript onJanuary 20, 2017

事件传播

MicroSoft的设计是当事件在元素上触发时,该事件将接着在该节点的父节点触发,以此类推,事件一直沿着DOM树向上传播,直到到达顶层对象document元素。这种自底向上的事件传播方式称为“事件冒泡”,也就是事件传播。

如何中断事件的传播?

stopPropagation() w3c取消冒泡

cancleBubble = true IE取消冒泡

取消事件默认效果:

returnValue = false IE 取消事件效果

defaultPrevent() w3c取消事件效果

<div id='aa'>
 <div id='bb'>
 <div id ='cc'></div>
 </div>
</div>
#aa{
 width: 600px;
 height: 600px;
 background: gray;
}
#bb{
 width: 400px;
 height: 400px;
 background: green;
}
#cc{
 width: 200px;
 height: 200px;
 background: red;
}

捕捉写法停止传播 从最顶层开始往下

document.getElementById('aa').addEventListener('click',function (ev){alert('aa');ev.stopPropagation();},true);// 结果捕捉到aa 加true 由冒泡变为捕捉 从上到下
 document.getElementById('bb').addEventListener('click',function (){alert('bb')},true);
 document.getElementById('cc').addEventListener('click',function (){alert('cc')},true);

冒泡写法停止传播 从下往上

document.getElementById('aa').addEventListener('click',function (){alert('aa');});//加true 由冒泡变为捕捉 从上到下
 document.getElementById('bb').addEventListener('click',function (){alert('bb')});
 document.getElementById('cc').addEventListener('click',
 function (ev){
 alert('cc');
 ev.stopPropagation();
 // ev.cancleBubble = true;//IE下 取消冒泡方法
 }); //结果是冒出cc 停止传播
}

取消事件效果

returnValue = false //IE 取消事件效果

preventDefault() //w3c取消事件效果

document.getElementsByTagName('a')[0].onclick = function (ev){
 alert('点击');
 //达到事件结束的效果 但是函数还是往下运行
 //
 ev.preventDefault();
 alert('已经拦截');
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
prettify 代码高亮着色器google出品
Dec 28 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
Javascript合并表格中具有相同内容单元格示例
Aug 11 Javascript
Jquery Uploadify上传带进度条的简单实例
Feb 12 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
浅谈jQuery.easyui的datebox格式化时间
Jun 25 Javascript
把普通对象转换成json格式的对象的简单实例
Jul 04 Javascript
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
微信小程序实现的五星评价功能示例
Apr 25 Javascript
vue实现公共方法抽离
Jul 31 Javascript
微信小程序实现拍照和相册选取图片
May 09 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 #Javascript
BootStrap组件之进度条的基本用法
Jan 19 #Javascript
微信小程序 页面跳转和数据传递实例详解
Jan 19 #Javascript
js实现符合国情的日期插件详解
Jan 19 #Javascript
微信小程序 生命周期和页面的生命周期详细介绍
Jan 19 #Javascript
原生JS和jQuery操作DOM对比总结
Jan 19 #Javascript
原生js实现电商侧边导航效果
Jan 19 #Javascript
You might like
上传多个文件的PHP脚本
2006/11/26 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
jquery处理json对象
2014/11/03 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
行政工作试用期自我评价
2014/09/14 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
导游欢迎词范文
2015/01/23 职场文书
酒店开业主持词
2015/07/02 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
2022年四月新番
2022/03/15 日漫