,,JavaScript中事件冒泡机制示例详析

,,JavaScript中事件冒泡机制示例详析

本文主要介绍JavaScript中事件冒泡机制的相关信息。详细介绍了什么是冒泡,冒泡捕获的必要性以及冒泡和捕获的具体区别。有需要的可以参考一下。

什么是冒泡?

DOM事件流有三个阶段:事件捕获阶段、目标阶段和事件冒泡阶段。

事件捕获:通俗的理解是,当鼠标点击或触发一个dom事件时,浏览器会将事件从根节点由外向内传播,即子元素被点击。如果父元素通过事件捕获注册了相应的事件,则父元素绑定的事件将首先被触发。

称为冒泡:与事件捕获相反,事件冒泡的顺序是从内向外到根节点的事件传播。

标准dom事件流的触发顺序是:先捕获后冒泡,即当dom事件被触发时,事件会先被捕获,事件源被捕获后事件会通过事件传播冒泡。不同的浏览器对此有不同的实现。IE10及以下版本不支持捕获事件,因此缺少一个事件捕获阶段。IE11、Chrome、Firefox、Safari等浏览器同时存在。

AddEventListener()方法

该方法设置一个事件监听器,当事件发生时,通过设置的参数执行操作。语法是:

addEventListener(事件,函数,使用捕获)

事件参数是必需的,指示被监控的事件,例如点击、触摸开始等。是以前没有前缀的事件。

function参数也是必需的,指示事件触发后调用的函数。它可以是外部定义的函数,也可以是匿名函数。

参数useCapture是可选的。填写“真”或“假”来描述事件是冒泡还是正在捕获。true表示捕获,默认false表示冒泡。

移除事件监听

如果要移除addEventListener()添加的事件监听,需要使用removeEventListener()。语法是:

removeEventListener(事件,函数)

与参数addEventListener()一致。

兼容性

IE和更早的版本,以及Opera 7.0和更早的版本,都不支持addEventListener()和removeEventListener()方法。相反,他们使用以下方法:

添加事件:

attachEvent(事件,函数)

删除事件:

**分离事件(事件,函数)* *

兼容性问题可以通过以下方式解决:

if (div1.addEventListener) {

div1.addEventListener('click ',function () {

Console.log('支持')

});

} else if (div1.attachEvent) {

div1.attachEvent('onclick ',function () {

Console.log(“不支持”)

});

}

冒泡和陷印的具体区别

超文本标记语言

div id='div1 '

div id='div2'/div

/div

射流研究…

脚本

var div 1=document . getelementbyid(' div 1 ');

var div 2=document . getelementbyid(' div 2 ');

div1.addEventListener('click ',function(){

console . log(' div 1-1-捕获阶段')

},真);

div2.addEventListener('click ',function(){

console . log(' div 2-2-捕获阶段')

},真);

div1.addEventListener('click ',function(){

console . log(' div 1-1-冒泡阶段')

});

div2.addEventListener('click ',function(){

console . log(' div 2-2-冒泡阶段')

});

/脚本

输出(单击div2时执行的结果)

解决办法

函数停止气泡(e) {

如果(例如停止传播){

e .停止传播();//所以它支持W3C的stopPropagation()方法

}否则{

window . event . cancel bubble=true;//否则需要用IE取消事件冒泡。

}

}

总结

这就是关于JavaScript中事件冒泡机制的文章。有关JavaScript事件冒泡的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: