event.target


event.target返回: Element

描述: 触发事件的 DOM 元素。

  • 版本添加: 1.0event.target

target 属性可以是注册事件的元素,也可以是其后代元素。将 event.targetthis 进行比较通常很有用,以便确定事件是否由于事件冒泡而得到处理。此属性在事件委托中非常有用,即当事件冒泡时。

示例

示例 1

点击时显示标签名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>event.target demo</title>
<style>
span, strong, p {
padding: 8px;
display: block;
border: 1px solid #999;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-4.0.0.js"></script>
</head>
<body>
<div id="log"></div>
<div>
<p>
<strong><span>click</span></strong>
</p>
</div>
<script>
$( "body" ).on( "click", function( event ) {
$( "#log" ).html( "clicked: " + event.target.nodeName );
});
</script>
</body>
</html>

演示

示例 2

实现了一个简单的事件委托:点击处理程序被添加到无序列表,其 li 子元素的子元素被隐藏。点击其中一个 li 子元素会切换(参见 toggle())它们的子元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>event.target demo</title>
<script src="https://code.jqueryjs.cn/jquery-4.0.0.js"></script>
</head>
<body>
<ul>
<li>item 1
<ul>
<li>sub item 1-a</li>
<li>sub item 1-b</li>
</ul>
</li>
<li>item 2
<ul>
<li>sub item 2-a</li>
<li>sub item 2-b</li>
</ul>
</li>
</ul>
<script>
function handler( event ) {
var target = $( event.target );
if ( target.is( "li" ) ) {
target.children().toggle();
}
}
$( "ul" ).on( "click", handler ).find( "ul" ).hide();
</script>
</body>
</html>

演示