2009-04-23 19 views
0

從fireAlert()函數內部,我怎樣才能引用調用它的元素,而不必通過鏈接傳遞this作爲參數?如何從被調用的函數中引用包含該事件的元素?

<script type="text/javascript"> 

//function 
function fireAlert(){ 
    alert(); 
} 

</script> 

<a href="javascript:;" onclick="fireAlert();">Fire</a> 
+0

我正在使用YUI。到目前爲止,沒有任何答案爲我工作。 – 2009-04-24 14:58:34

回答

1

沒有與jQuery這樣做的更簡單的方法,但這是它是如何沒有完成它:

UPDATE:請嘗試以下HTML/Javascript代碼。注意我是如何在window.onload內部附加onclick事件的,而不是將它指定爲元素的屬性。

對於本示例,我將事件附加到頁面中的所有錨定標記,但是您可以用getElementById替換getElementsByTagName作爲特定的事件。

<html> 
    <head> 
     <script language="javascript"> 
     function fireAlert(e) 
     { 
      var whoCalled = e ? e.target : event.srcElement; 

      alert(whoCalled.innerHTML); 
     } 
     window.onload=function() 
     { 
      var allHrefs = document.getElementsByTagName("a"); 
      for(i=0;i<allHrefs.length;i++) 
      { 
       allHrefs[i].onclick=fireAlert; 
      } 
     } 
     </script> 
    </head> 
    <body> 
     <a href="#">Hello #1</a> 
     <a href="#">Hello #2</a> 
     <a href="#">Hello #3</a> 
     <a href="#">Hello #4</a>   
    </body> 
</html> 
+0

是不是隻針對IE的srcElement? – hbw 2009-04-23 20:47:50

+0

這是正確的。我更新了我的帖子以反映這一點。 – 2009-04-23 20:54:53

0

何塞說,它會很容易與jQuery。

$(document).ready(function() 
{ 
    $("a").click(function() 
    { 
     // this == the clicked element 
    }); 
}); 
相關問題