目录
前言
课前思考
for循环注册事件
语法
事件委托
1.事件委托的好处是什么?
2.事件委托是委托给了谁,父元素还是子元素
3.如何找到真正触发的元素
示例代码
总结
前言
才子佳人,自是白衣卿相
课前思考
1.如果同时给多个元素注册事件,我们怎么做的?
for循环注册事件
语法
const lis = document.querySelectorAll('ul li');
for(leti=0;i< lis.length; i++){
lis[i].addEventListener('click',function(){alert('我被点击了')
})
2.有没有一种技巧 注册一次事件就能完成以上效果呢?
事件委托
事件委托是利用事件流的特征解决一些开发需求的知识技巧
优点:减少注册次数,可以提高程序性能原理:事件委托其实是利用事件冒泡的特点。给父元素注册事件,当我们触发子元素的时候,会冒泡到元素身上,从而触发父元素的事件
1.事件委托的好处是什么?
减少注册次数,提高程序性能
2.事件委托是委托给了谁,父元素还是子元素
3.如何找到真正触发的元素
事件对象.target.tagName
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.highlight {
background-color: red;
}
</style>
</head>
<body>
<ul>
<li>一</li>
<li>二</li>
<li>三</li>
<li>四</li>
<li>五</li>
<p>我是p标签</p>
</ul>
<script>
const ul = document.querySelector('ul');
ul.addEventListener('click', function (e) {
if (e.target.tagName === 'LI') {
e.target.classList.toggle('highlight');
}
});
</script>
</body>
</html>
总结
斗酒彘肩,风雨渡江