js中的事件委托

js中的事件委托

1、什么是事件委托?

简单来讲,事件委托就是本来很多元素都需要有自己的事件,但是一个一个给太麻烦了,因此找一个委托人,这个委托人就是父亲元素。

原理:利用的是事件冒泡原理,触发子元素事件会默认触发父元素的事件。

2、事件委托的例子

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件委托</title>
		<style>
			ul {
				list-style: none;
				text-align: center;
			}
			ul li {
				display: block;
				width: 100px;
				height: 100px;
			}
			li:nth-child(2n) {
				background-color: red;
			}
			li:nth-child(2n+1) {
				background-color: pink;
			}
			ul .active {
				background-color: green;
			}
		</style>
	</head>
	<body>
		<div>
			<ul>
				<li>测试1</li>
				<li>测试2</li>
				<li>测试3</li>
				<li>测试4</li>
				<li>测试5</li>
				<li>测试6</li>
			</ul>
		</div>
		<script>
		let ulNode = document.querySelector("ul")
		ulNode.addEventListener("click",function(ev) {
			let lis = this.querySelectorAll("li")
			for(let i=0;i<lis.length;i++) {
				// lis[i].className = ""
				lis[i].classList.remove("active")
			}
			ev.target.classList.add("active")
		})
		</script>
	</body>
</html>
上述事件中,我们将li的事件委托给了父亲元素ul,因此我们只需要监听父亲元素即可
上一篇:希尔排序


下一篇:css3-弹性盒简介