2009-06-03 74 views
17
<script> 
function Hello(){ 
    var caller = arguments.callee.caller; 
    alert(caller); 
} 
</script> 

<input type="button" id="btnHello" value="Hello" onclick="Hello()" /> 

如何從該Hello功能得到鍵ID上面進行傳遞任何參數的Hello功能如何獲得主叫事件和DOM元素ID

+2

順便說一下,arguments.callee.caller是對函數的引用,如果有的話,調用當前函數。它並沒有在所有的瀏覽器中實現,並且已經被ecma腳本人員棄用了多年。 – kennebec 2009-06-03 15:38:42

回答

26

事件對象傳遞給你好功能自動。你需要接受它作爲一個參數,然後做一些跨平臺的工作來獲取元素。 JS框架將幫助你在這裏。

function Hello(e){ 
    var caller = e.target || e.srcElement; 
    console.log(caller); 
} 

編輯
+1安德魯下面的評論。最佳實踐使用addEventListener和attachEvent。

+2

僅當事件對象的使用類似於btnid.onclick = function(e){alert(e.target)}時纔會傳遞事件對象;但是,當我們將事件應用爲內聯時,如何獲取事件對象。 – Jineesh 2009-06-03 15:04:26