<a>的click事件目標

一html語法如下

<a id=”mylink” href=”#”><img id=”myimg” src=”XXX/xxxjpg”/></a>

我們給<a>註冊了click事件的處理函數,如下:

document.getElementById(“mylink”).onclick=function(e){

alert(e.target);

}

上述範例中的e.target會是指向<img/>物件。而如果<a>裡面放的是文字,e.target就會變成<a>了。

一般而言,如果我們直接在物件上註冊事件的處理函數,例如上例的document.getElementById(“mylink”).onclick,這個click事件函數可以被正確的執行,但有的時候我們會利用click事件的target來判別接下來要如何處理,例如

<div id=”mydiv>

<a id=”mylink>

<img id=”myimg” src=”xxx”/>

</a>

</div>

<script type=”text/javascript”>

document.getElementById(“mydiv”).onclick=function(e){

if(e.target.id=”mylink”){

alert(‘點擊的是鏈結!”);

}

}

</script>

此時若誤解了事件的目標物件,就會導致無法執行安排的處理函數。上例來講,e.target是指向<img/>,所以alert(“點擊的是鏈結!”)將永遠不會被執行。

ps:本篇文章作法與IE6有相容性問題。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *