學習中,有時遇到event.target,總是不明白為什麼要用target,後來學習了下,大概瞭解了event.target到底指什麼元素了,關於event和this的內容,下回再說:

先擺結論:event.target指向事件執行時滑鼠所點選(假設是click事件)區域的那個元素。如果事件繫結的元素內部有子元素,那麼event.target指向這個子元素,如果沒有,event.target指向事件所繫結的元素。看程式碼:

<html>
<head>
<title>prac</title>
<meta charset="utf-8">
<style type="text/css">
    *{margin:0;padding:0;font-size: 20px;}
    #div1{background-color: lightblue;height: 300px;}
    #p1{background-color: red;height: 100px;}
    #p2{background-color: pink;height: 100px;}
</style>
<script type="text/javascript">
function getEventTrigger(event)
  {
  x=event.target;
  alert("event.target元素的id: " + x.id+",事件型別:"+event.type);
  }
</script>
</head>
<body > <div id="div1" onmousedown="getEventTrigger(event)"> <p id="p1">我是p1</p> <p id="p2">我是p2</p> 父塊div1剩下的部分 </div> </body>
</html>

如上圖:給父塊div1繫結mousedown事件,呼叫函式getEventTrigger,彈出event.target元素的id:和事件型別,div1裡面加了兩個子元素,p1和p2,剩下的是div1沒有被覆蓋的部分;

效果如下:當你在p1裡按下滑鼠時,彈出p1的id;p2裡按下滑鼠時,彈出p2的id;在div1裡按下滑鼠時,彈出的就是div1的id;

也就驗證了上面的結論:event.target指向事件執行時滑鼠所點選(假設是click事件)區域的那個元素。如果事件繫結的元素內部有子元素,那麼event.target指向這個子元素,如果沒有,event.target指向事件所繫結的元素。

後面再附個連結和w3school的解釋,感覺解釋的不清楚,不過案例是用他的程式碼改的,嘿嘿

target 事件屬性可返回事件的目標節點(觸發該事件的節點),如生成事件的元素、文件或視窗。
http://www.w3school.com.cn/jsref/event_target.asp