2013-06-13 2 views
2

Каков наилучший способ выполнить одно и то же действие, если зарегистрировано нажатие клавиши или клик? Я хотел бы избежать увольнений и сделать код короче.JQuery: Событие по щелчку или с клавиатуры без увольнений?

Спасибо

+0

Какой у вас код? – Alex

+0

В принципе, на данный момент это то, что у меня есть: '$ ('. LeftPlayer'). Click (function() {...});' '$ (" body "). Keydown (function (e) { if (e.keyCode === 37) {...}; }); ' – halpsb

ответ

3

.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); 
+0

Спасибо, это то, что я искал! – halpsb