当前位置:首页 > 日记 > 正文

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

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

事件传播

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('已经拦截');}

总结

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

相关文章

详解Vue.js组件可复用性的混合 | m

详解Vue.js组件可复用性的混合 | m

组件,混合,可复用性,自定义指令,详解,混合是什么混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。例如:var tpl1={ te…

jQuery读取本地的json文件 | 实例

jQuery读取本地的json文件 | 实例

文件,读取,实例,电脑软件,jQuery,最近写项目需要读取本地的json文件,然后悲催的发现前端新手的我居然不会,查查找找发现这东西并不难,但是应该是比较常用的,毕竟json太好用了!我是直接用的 jquery 实现的,但是 Ajax 也可以,不过我用的Ajax的简约版…

为什么微信扫一扫无法获取摄像头数

为什么微信扫一扫无法获取摄像头数

数据,扫一扫,摄像头,电脑软件,  当你使用微信扫码时,会出现无法获取摄像头数据,请重新打开扫一扫的提示,这些会影响到大家扫码关注、支付等问题,小编将在本文为大家提供摄像头打不开的解决办法,希望能够帮助到大家。微信扫一扫无法获取摄像头…

Word2007默认段落间距和行距如何更

Word2007默认段落间距和行距如何更

默认,行距,间距,段落,如何更改,  升级了版本之后,默认的段落间距和行距比早期版本的Word 要大,默认的段落间距超出了文字编辑。以下是小编为您带来的关于Word2007默认段落间距和行距更改,希望对您有所帮助。Word2007默认段落间距和行距更改…

Excel中利用函数公式计算个人所得

Excel中利用函数公式计算个人所得

函数,计算,步骤,方法,个人所得税,  Excel的强大在于你如何利用它! 下面将教利用某些函数来计算个人所得税。今天,小编就教大家在Excel中利用函数公式计算个人所得税的方法。希望对你有帮助!Excel中利用函数公式计算个人所得税的步骤首先,我…

JavaScript基础进阶之数组方法总结

JavaScript基础进阶之数组方法总结

推荐,数组方法,进阶,基础,电脑软件,数组常用方法总结:下面我只总结了es3中常用的数组方法,一共有11个。es5中新增的9个数组方法,后续再单独总结。1个连接数组的方法:concat()2个数组转换为字符串的方法:join()、toString()6个增删数组元素的方法:pop()、p…

Photoshop制作非常震撼的逼真3D眼

Photoshop制作非常震撼的逼真3D眼

3D,逼真,海报,眼镜,电脑软件,这张海报前后共计花费了10个小时左右,找素材花费了4个小时,合成的比较匆忙。如果你想尝试一下的话,建议先选择一个小局部进行尝试性合成,因为这次的海报合成部分太多,涉及到手绘调整的地方也不少。最终效果一、构思…

详解Webstorm 新建.vue文件支持高

详解Webstorm 新建.vue文件支持高

语法,支持,文件,详解,电脑软件,Webstorm 添加新建.vue文件功能并支持高亮vue语法和es6语法,分享给大家,具体如下:添加新建.vue文件功能①Webstorm 右上角File-Plugins 搜索vue如果没有就去下载 点击serch in repositories②点击安装vue.js③安…

ps怎么给人物添加一个爆炸背景动画

ps怎么给人物添加一个爆炸背景动画

动画效果,背景,人物,电脑软件,ps,本文主要是用时间轴来设置动画,前期把人物抠出,并用云彩滤镜渲染出烟雾效果;然后在时间轴就可以灵活设置动画,把烟雾缩小再放大就可以做出爆炸效果。最终效果。软件名称:photoshop CC 2016 64位 中文绿色精简破…

JavaScript实现计数器基础方法

JavaScript实现计数器基础方法

方法,计数器,基础,电脑软件,JavaScript,本文实例为大家分享了js实现计数器的具体代码,供大家参考,具体内容如下通过使用 JavaScript,设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。称之为计时事件。 在 JavaScritp 中使用计时事…

Photoshop制作非常有创意的拍立得

Photoshop制作非常有创意的拍立得

叠加,照片,创意,效果,电脑软件,下面为大家分享Photoshop制作非常有创意的拍立得照片散落叠加效果方法,教程真的很不错,很值得大家学习,推荐到,有需要的朋友不妨来参考一下吧!先看看效果图话不多说,开始教程1、首先我们将素材文件拖拽进PS,然后将背…

wps中怎样设置页面编码

wps中怎样设置页面编码

设置,编码,文字,方法,正文,  对于比较规范的论文,我们一般需要设置其从正文开始编码,那么,如何在wps文字中设置从正文开始编码的效果呢?下面就让小编告诉你wps文字如何设置从正文开始编码的方法,希望小编整理的资料对大家有帮助。wps文字设置…