<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script>
</head>
<style>
span, strong, p {
padding: 8px; display: block; border: 1px solid #999; }
</style>
<body>
<div id="log"></div>
<div>
<p>
<strong><span>c</span></strong>
</p>
</div>
<hr />
<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 type="text/javascript">
/**
* event.target 返回Element
* 描述:触发事件的DOM元素
*
* target可以是注册事件时的元素,或者它的子元素。通常用于比较event.target和
* this事件是不是由于冒泡而触发的。经常用于事件冒泡时处理委托事件。
*
*
*
* */
//例子一
$("body").click(function(event){
$("#log").html("target : " + event.target.nodeName);
});
//例子二
//实现一个简单的事件委托:给无序列表添加一个点击事件处理函数,
//然后它的子元素li的子元素都隐藏起来,当点击这个ul其中一个子
//元素li的时候,来回切换显示(参见 toggle())li的子元素。
function handler(event){
var $target = $(event.target);
if($target.is("li")){
$target.children().toggle();
}
}
// $("ul").click(handler).find("ul").hide();
$("ul").click(handler).find("ul").hide();
</script>
</body>
</html>
例子一结果:
例子二结果: