手机版

js冒泡事件的深入分析

时间:2021-09-09 来源:互联网 编辑:宝哥软件园 浏览:

在javascript dom操作中,您肯定会遇到js冒泡事件,其中最常见的是div弹出事件,如图表

单击灰色部分时,弹出窗口消失,而单击黑色部分则没有效果。

通过下面的代码分析js的冒泡事件

Html代码:

复制代码如下:doctype html lang=' en ' Head metacarset=' utf-8 ' title js冒泡事件/title linkrel='样式表' href=' style . CSS '/Head body div class=' container ' h1js冒泡事件分析/h1hr div class=' boxbg-gray ' button class=' BTN ' click me!/button /div /div脚本var box=document.querySelector('。box '),btn=document.querySelector ' .BTN’);box . onclick=function(event){ alert('我是div ');} BTN。onclick=function (event) {alert('我是按钮');}/脚本/正文/html

使用firefox浏览器默认开发工具的3d视图,您可以清楚地看到div层的顺序

插图:

当点击按钮时,会弹出“我是按钮”,然后弹出“我是div”,因为首先触发按钮事件,然后触发下一个div点击事件。

事件的触发是先进先出原则。

插图:

然后有时候我们不想触发多个事件引起冲突,所以event有stopperpagation();停止冒泡的方法

还有一个同样常用的事件方法,比如链接。如果我点击链接时不想跳转,请使用event . preventdefault();方法

示例代码如下

复制代码如下:doctype html lang=' en ' Head metacarset=' utf-8 ' title js冒泡事件/title linkrel='样式表' href=' style . CSS '/Head body div class=' container ' h1js冒泡事件分析/h1hr div class=' boxbg-gray ' button class=' BTN ' click me!/button a href=' http://www . liteng . org ' id=' link '我是一个链接/a/div/div脚本varbox=document.queryselector('。方框'),BTN=document.queryselector('。BTN ');box . onclick=function(event){ alert('我是div ');} BTN。onclick=function (event) {alert('我是按钮');event . stopperpagation();} document.getelementbyid ('link ')。onclick=function (event) {alert('我是link ');event . preventdefault();}/*区分event . stopperpagation();和event . preventdefault();前者使用stopPropagation()方法防止事件冒泡,而后者防止默认行为,如阻止超链接*//脚本/正文/html

我的朋友们能完全理解js冒泡事件吗?如果你有任何问题,给我留言

版权声明:js冒泡事件的深入分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。