Javascript 如何使参数在事件函数中工作

Javascript 如何使参数在事件函数中工作,javascript,jquery,Javascript,Jquery,当我想解除绑定(关闭)事件时,我将代码包装在一个函数中,但当我需要查看按下哪个键时,我需要获取事件的事件(不确定如何调用) //典型 $('body').on('keydown',function( event ){ if(event.keyCode == 37){ // do something } }); //我的例子 function keyDownHandler() { if(event.keyCode == 39) { //

当我想解除绑定(关闭)事件时,我将代码包装在一个函数中,但当我需要查看按下哪个键时,我需要获取事件的事件(不确定如何调用)

//典型

$('body').on('keydown',function( event ){
    if(event.keyCode == 37){
        // do something
    }
});
//我的例子

function keyDownHandler() {
     if(event.keyCode == 39) {
        // does not work
    }    
 }

$('body').on('keydown', keyDownHandler);

您需要获取事件对象,您可以将其作为回调函数参数获取

function keyDownHandler(event) {
    // set it here ----^^^^^^---
    if(event.keyCode == 39) {
        // works now
    }
}

$('body').on('keydown', keyDownHandler);

function keyDownHandler()
function keyDownHandler(event)
在第一个示例中,您定义了一个带有
event
参数的函数,在第二个示例中,您省略了
event
参数。为什么?我觉得差异非常明显……我个人觉得代码更少,因此我认为
$('body')).on('keydown',keyDownHandler);
是最简单的方法。但是“最简单”是主观的….@user759235:至少你需要检查你的控制台…将出现
未捕获的类型错误:无法读取未定义的属性'keyCode'
function keyDownHandler(event) {
    // set it here ----^^^^^^---
    if(event.keyCode == 39) {
        // works now
    }
}

$('body').on('keydown', keyDownHandler);