返回值:Elementevent.target

最初触发事件的DOM元素。

event.target 属性指向的对象可能是事件绑定时的那个对象,也可能是它的子孙元素。通常通过比较 event.targetthis 来确定事件是不是由于冒泡而触发的。经常用于事件冒泡时处理事件委托。

示例:

显示点击元素的标签名。

<!DOCTYPE html>
<html>
<head>
<style>
span, strong, p { 
  padding: 8px; display: block; border: 1px solid #999;  }
    </style>
<script src="jquery.min.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>
演示:

示例:

实现一个简单的事件委托:给无序列表增加一个点击事件处理函数,然后它的子元素li的子元素都隐藏起来。当点击这个ul其中一个子元素li的时候,来回切换显示(参见 toggle())li的子元素。

<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.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>
演示: