日期:2014-05-16  浏览次数:20306 次

Javascript中, event 的 target 与 currentTarget 的区别

target在事件流的目标阶段;currentTarget在事件流的捕获 ,目标及冒泡阶段。只有当事件流处在目标阶段的时候,两个的指向才是一样的, 而当处于捕获和冒泡阶段的时候,target指向被单击的对象而currentTarget指向当前事件活动的对象(一般为父级)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
	<script type="text/javascript">
	function test(e){  
         alert("e.target.tagName : " + e.target.tagName + "\n e.currentTarget.tagName : " + e.currentTarget.tagName);  
    }
	</script>
</head> 
<body> 
	<div id="outer" style="background:#099" onclick="test(event)">  
		click outer  
		<p id="inner" style="background:#9C0">click inner</p>  
		<br>  
    </div> 
</body> 
</html>

?

上面的示例中,当在outer上点击时,e.target与e.currentTarget是一样的,都是div;当在inner上点击时,e.target是p,而e.currentTarget则是div。

本文转自:萤火开发网

作者:月高不知归

?