event.target
触发事件的DOM元素。
event.target
target
属性可以是注册事件时的元素,或者它的子元素。通常用于比较event.target
和this
来确定事件是不是由于冒泡而触发的。经常用于事件冒泡时处理事件委托。
例子
显示点击元素的标签名。
<!DOCTYPE html> <html> <head> <style> span, strong, p { padding: 8px; display: block; border: 1px solid #999; } </style> <script src="https://www.lanmper.cn/static/js/jquery-3.5.0.js"></script> </head> <body> <div id="log"></div> <div> <p> <strong><span>click</span></strong> </p> </div> <script>$("body").click(function (event) { $("#log").html("clicked: " + event.target.nodeName); }); </script> </body> </html>
click
实现一个简单的事件委托:给无序列表增加一个点击事件处理函数,然后它的子元素li的子元素都隐藏起来。当点击这个ul其中一个子元素li的时候,来回切换显示(参见toggle()
)li的子元素。
<!DOCTYPE html> <html> <head> <script src="https://www.lanmper.cn/static/js/jquery-3.5.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").click(handler).find("ul").hide();</script> </body> </html>
- item 1
- sub item 1-a
- sub item 1-b
- item 2
- sub item 2-a
- sub item 2-b