JQuery:如何避免冗余地在点击或按键事件上触发?

7
什么是在按键或点击被注册时执行相同操作的最佳方法?我希望避免冗余并使代码更短。谢谢。

你目前有什么代码? - Alex
基本上,目前我有这个:$('.leftPlayer').click(function() {...}); $("body").keydown(function(e) { if (e.keyCode === 37) {...}; }); - halpsb
1个回答

10

.on()可以使用空格分隔多个事件名称,它将为所有事件运行相同的处理程序:

$('#something').on('keypress click', function() {
    // run the same code
});

如果您需要更多的灵活性,例如使用不同条件,则可以创建一个函数:

function myProcedure(e){
    if(e.type == "keydown"){
        console.log(e.keyCode);
    } elseif(e.type == "click"){
        console.log("clicked");
    }
}

$('.leftPlayer').click(myProcedure);
$('body').keydown(myProcedure);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接