当我尝试使用以下参数附加事件处理函数时:
myhandle.onclick = myfunction(param1,param2); function myfunction(param1,param2){ }
现在我想在我的处理函数中访问事件对象.网络上提到了一种发送事件对象的方法,例如:
myhandle.onclick = myfunction(event,param1,param2);
但是当我测试它时,它给出的事件对象是未定义的.
我知道库使这个东西变得容易,但我正在寻找一个原生的JS选项.
解决方法
我不完全确定你要做什么,但也许这样的东西就是你要找的东西?
function myfunction(param1,param2){ return function(event) { // For compatibility with IE. if (!event) { event = window.event; } alert("event = " + event + ",param1 = " + param1 + ",param2 = " + param2); }; } myhandle.onclick = myfunction(param1,param2);
最终的结果是myfunction内部的匿名函数将被称为onclick处理程序,导致事件加上打印的两个参数.这两个参数在添加事件处理程序时是固定的,而事件将在每次用户单击myhandle时更改.