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

How to get the parameter to work inside a event function

本文关键字:函数 工作 事件 何使 参数      更新时间:2023-09-26

由于我想取消绑定(关闭)事件,我将代码封装在一个函数中,但由于我需要查看按下了哪个键,我需要获取事件的事件(不确定这是如何调用的。

//正常示例

$('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);
$(document).ready(function () {
    //1st way
    $('body').on('keydown', function(event){
        keyDownHandler(event);
    });
    //2nd way ,same as first but shorter use it for send event only
    $('body').on('keydown', keyDownHandler);
    //3rd way ,this way to send more data
    $('body').on('keydown', {example:'hello world'},keyDownHandler2);
});
function keyDownHandler(event) {
    console.log(event.keyCode);
}
function keyDownHandler2(event) {
    console.log(event.keyCode);
    console.log(event.data.example);
}