2011-12-20 3 views
4

я знаю, что я могу обнаружить ключ, который выдавившийся со следующим кодом:JQuery: если клавиша «someKey» нажат

$('input').keyup(function (e){ 
if(e.keyCode == 13){ 
    alert('enter'); 
    } 
}) 

Но мне нужно знать, если клавиша была нажата. псевдокод:

if ($('input').keyup() == true) 
    { 
     doNothing(); 
    } 
    else { 
     doSomething(); 
    } 

Как я могу это сделать?

+0

«keyup» запускается при отпускании клавиши с помощью клавиши «keydown» для запуска события при нажатии клавиши –

ответ

7

Поскольку «KeyUp» будет срабатывать при нажатии любой клавиши, вы просто оставить из if ...

$('input').keyup(function (e){ 
    // do something 
}) 

Слияние это в текущий код, вы могли бы сделать что-то вроде ...

) функция
$('input').keyup(function (e){ 
    alert('a key was press'); 

    if (e.keyCode == 13) { 
     alert('and that key just so happened to be enter'); 
    } 
}) 
+0

, но мне нужна часть «else», если клавиша не нажата. Я должен обрабатывать не только часть «вы нажали ключ», но и часть «вы не нажали». –

+3

Как определить, что пользователь не нажал клавишу? Отсутствие запуска события .keyup() означает, что пользователь в настоящее время не освобождает ключ. –

+0

хорошо, тогда вы ответили на мой вопрос. благодаря –

4
$('input').keyup(function (e){ 
    alert("You pressed the \"Any\"-key."); 
}) 
2

Если вы хотите проверить, если пользователь не нажимал клавиши вы можете использовать setInterval (,

var interval = setInterval(function() { 
    //Do this if no key was pressed. 
}, 2000); 

Обратите внимание, что вы должны очистить интервал, а clearInterval().