下面的代码有 5 个按钮,如果要点击每个按钮都有对话框的话,是不是要写 5 个事件监听呢?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<div id="allButtons">
<button>button 1</button>
<button>button 2</button>
<button>button 3</button>
<button>button 4</button>
<button>button 5</button>
</div>
</body>
</html>
|
其实不需要写 5 次。冒泡阶段时点击按钮触发它的父元素 div,所以监听 div 元素就可以了。这个处理方法就叫事件委托。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<div id="allButtons">
<button>button 1</button>
<button>button 2</button>
<button>button 3</button>
<button>button 4</button>
<button>button 5</button>
</div>
<script>
allButtons.addEventListener("click", (event) =>
alert("clicked " + event.target.textContent)
);
</script>
</body>
</html>
|
文章作者
叶寻 | Cyrus Yip
上次更新
2021-11-01
(43e3cd2)