可能有人问过,但是做了一个简短的搜索,我找不到答案。
我正在创建一个处理用户事件的函数,我不知道如何将参数传递给函数,而不会破坏事件处理程序。
这是我的代码:
function keydown(e) {
e = e || window.event;
if (e.keyCode == '38' || e.keycode == '40' || e.keyCode == '37' || e.keyCode == '39')
e.preventDefault();
switch(e.keyCode){
case 38: //Up
console.log('UP');
break;
case 40: //Down
console.log('DOWN');
break;
case 37: // Left
console.log('LEFT');
break;
case 39: //Right
console.log('RIGHT');
break;
}}
我想要这样的事情:
function keydown(e, myParam) {
console.log(myParam); // Console logging the second parameter
e = e || window.event;
if (e.keyCode == '38' || e.keycode == '40' || e.keyCode == '37' || e.keyCode == '39')
e.preventDefault();
switch(e.keyCode){
case 38: //Up
console.log('UP');
break;
case 40: //Down
console.log('DOWN');
break;
case 37: // Left
console.log('LEFT');
break;
case 39: //Right
console.log('RIGHT');
break;
}
}
有人有任何建议吗?
答案 0 :(得分:1)
您可以使用闭包:
function keydown(param) {
return function(e) {
console.log(param)
...
}
}
elem.addEventListener('keydown', keydown(param))