2010-10-02 407 views
10

我有一個<input>,它有一個onkeydown內聯事件處理程序。在這個處理程序中,我想調用一個函數並將特殊參數傳遞給它 - 事件數據。在內聯事件處理程序中傳遞事件數據

當我要處理事件(如的OnMouseMove)整個文檔,我用下面的代碼:

document.onmousemove=function(e) { 
// here I can make a good use of the 'e' variable, 
// for example extract the mouse coordinates from it 
} 

和它的作品(雖然我不知道在哪裏e變量 - 事件數據 - 來自)。
但是這次我只想使用上面提到的<input>的功能。
我需要將事件數據傳遞給函數,以便它可以獲取按下的鍵的代碼。我想在內聯事件處理程序中執行此操作。我創建了一個功能:

function myfunc (e) { 
    var evt=window.event?event:e; 
    var code=evt.keyCode; 
    alert (code); 
} 

,並試圖所有這些方法:

<input onkeydown="myfunc(this)">

<input onkeydown="myfunc(this.onkeydown)">

<input onkeydown="myfunc(onkeydown)">

但沒有一次成功,警告窗口不停顯示「未定義」。
我在Google尋找解決我的問題的方法,但沒有找到任何可以幫助我解決問題的方法。

回答

14

<input onkeydown="myfunc(event)">

function myfunc (e) { 
    e = e || window.event; 
    var code = e.keyCode; 
    alert (code); 
} 
+0

真的謝謝:)很多我不知道的全球'event'變量。現在它完美的工作,再次感謝。 – rhino 2010-10-02 18:36:13

+0

你應該在進入javascript事件處理之前真的閱讀一篇論文,因爲它可能會變得混亂,特別是如果你處理IE。無論如何,我很高興能夠提供幫助。 – galambalazs 2010-10-02 18:38:11

+1

在IE7&和IE 8上不起作用 – Luckyy 2014-04-02 08:55:55

相關問題