JavaScript给事件委托批量添加事件监听的方法是什么(javascript,编程语言)

时间:2024-04-17 07:00:43 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

希望大家仔细阅读,能够学有所成!

1.什么是事件委托

事件委托:利用事件冒泡的特性,将本应该注册在子元素上的处理事件注册在父元素上,这样点击子元素时发现其本身没有相应事件就到父元素上寻找作出相应。这样做的优势有:

  • 减少DOM操作,提高性能。

  • 随时可以添加子元素,添加的子元素会自动有相应的处理事件。

2.事件委托的原理

事件委托是利用事件的冒泡原理来实现的,何为事件冒泡呢?就是事件从最深的节点开始,然后逐步向上传播事件。
举个例子:页面上有这么一个节点树,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。

3.事件委托的实现

通过一个案例来实现事件委托。
案例:批量添加事件监听。使用JavaScript实现:点击哪个li,哪个li元素的背景变红。

JavaScript给事件委托批量添加事件监听的方法是什么

结构层+样式层代码:

<style>
*{
margin:0;
padding:0;
}
ul{
float:left;
width:800px;
margin-top:50px;
}
ulli{
list-style:none;
float:left;
width:200px;
height:200px;
border:1pxsolid#000;
margin-right:20px;
}
ulli:first-child{
margin-left:20px;
}
</style>
<body>
<ulid="list">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</body>

3.1 方法1:循环添加事件

不使用事件委托,使用for循环添加点击事件,内存消耗大。

varoList=document.getElementById('list');
varlis=oList.getElementsByTagName('li');
for(vari=0;i<lis.length;i++){
lis[i].onclick=function(){
this.style.backgroundColor='red';
}
}

3.2方法2:使用事件委托

使用事件委托。

varoList=document.getElementById('list');
oList.onclick=function(e){
e.target.style.backgroundColor='red';
}

该案例中,e.target表示用户真正点击到的那个元素。

本文:JavaScript给事件委托批量添加事件监听的方法是什么的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:JavaScript中onclick和click的区别是什么下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18