在jQuery上花了这么多时间之后,我对我老式的JS生锈了......
问题:将事件附加到要触发函数的对象时,如何将事件传递给所述函数?
示例功能:
myFunction(e){
...
}
事件附件示例:
document.getElementById('blargh').onkeypress = function(){myfunction([what do I put here to pass the event?])};
答案 0 :(得分:1)
让处理程序接受一个参数,比如event
,并将其传递给你的函数:
document.getElementById('blargh').onkeypress = function(event){myfunction(event)};
事件处理程序始终在W3C模型中获取作为参数传递的当前事件。
对于IE,您必须通过window.event
获取参数。因此,在函数中你可以编写类似的东西:
function(event) { event = event || window.event; myfuntion(event);}
答案 1 :(得分:1)
您可以尝试使用arguments
。此变量将自动填充到本地范围中。它是传递给函数的所有参数的数组。如果您将arguments
传递给myfunction
,则传递到偶数处理程序的所有内容都将作为数组传递给myfunction
。
document.getElementById('blargh').onkeypress = function(){myfunction(arguments)};
function myfunction(args)
{
alert(args[0]);
}