jQuery中花費這麼多時間後,我對我的老式JS生鏽...通過附加的事件偵聽器傳遞事件
的問題:當安裝一個事件要觸發的對象一個函數,你如何將事件傳遞給上述函數?
實例功能:
myFunction(e){
...
}
例事件附件:
document.getElementById('blargh').onkeypress = function(){myfunction([what do I put here to pass the event?])};
jQuery中花費這麼多時間後,我對我的老式JS生鏽...通過附加的事件偵聽器傳遞事件
的問題:當安裝一個事件要觸發的對象一個函數,你如何將事件傳遞給上述函數?
實例功能:
myFunction(e){
...
}
例事件附件:
document.getElementById('blargh').onkeypress = function(){myfunction([what do I put here to pass the event?])};
做處理程序接受一個參數,說event
,並把它傳遞給你的函數:
document.getElementById('blargh').onkeypress = function(event){myfunction(event)};
的事件處理程序總是獲取當前事件作爲參數傳遞給W3C模型。
對於IE,您必須通過window.event
獲取參數。因此,在功能,你可以寫這樣的:
function(event) { event = event || window.event; myfuntion(event);}
你可以嘗試使用arguments
。這個變量會自動填充到本地作用域中。它是傳入函數的所有參數的數組。如果您將arguments
傳遞給您的myfunction
,則傳遞到偶處理程序的所有內容將作爲數組傳遞到myfunction
。
document.getElementById('blargh').onkeypress = function(){myfunction(arguments)};
function myfunction(args)
{
alert(args[0]);
}
太快了!這麼快,我不能接受它作爲答案呢。謝謝! (我會回來接受它...) –