Javascript addEventListener:将参数传递给外部事件处理程序
在Javascript中,当我使用Javascript addEventListener:将参数传递给外部事件处理程序,javascript,dom-events,Javascript,Dom Events,在Javascript中,当我使用addEventListener时,我想调用一个外部方法并向其传递一个事件参数: var secondParam= "titi"; element.addEventListener("keydown", handleEventFunc(event, secondParam)); ... handleEventFunc: function (eventArg, secondParam) { var key =
addEventListener
时,我想调用一个外部方法并向其传递一个事件参数:
var secondParam= "titi";
element.addEventListener("keydown", handleEventFunc(event, secondParam));
...
handleEventFunc: function (eventArg, secondParam) {
var key = event.keyCode;
var toto = secondParam;
//do things
}
如果我使用closure,它将起到等效的作用:
var secondParam= "titi";
element.addEventListener("keydown", function (event) {
var key = event.keyCode;
var toto = secondParam;
//do things
}
您知道如何执行此操作吗?如果您只是引用函数而不是调用函数,则会自动执行此操作,因为任何参数都将由调用上下文传递,在本例中为事件处理程序
element.addEventListener("keydown", obj.handleEventFunc);
var obj = {
handleEventFunc: function (event) { // tada, now works
var key = event.keyCode; // keep the names the same
//do things
}
}
调用函数的不是你。当事件发生时,它是浏览器。因此,您必须为浏览器提供一个要调用的函数。