2013-10-17 34 views
1
$(document).keypress(function(e) 
{ 
    alert(e.keyCode); 
    if(e.keyCode==27) 
    { 
    hide_menu(); 
    } 
}); 

我得到除了转义键以外的所有键的警报,并且if的成功部分永远不会被调用。为什么会发生?为什么仅用于转义的keyCode事件不起作用?

+0

只是一个旁注,你应该使用[电子,如果你使用jQuery](http://stackoverflow.com/a/4471635/1400370) –

回答

5

使用的$(document).keyup的代替的$(document).keypress

以下代码正常工作:

$(document).keyup(function(e) 
{ 
    alert(e.keyCode); 

    if(e.keyCode==27) 
    { 
     alert ("Esc key"); 
     hide_menu(); 
    } 
}); 
+0

http://jsfiddle.net/tb2BD/点击输出窗口,然后按esc键。适用于Chrome。 –

+0

为什么这不适用于keydown? –

1

您可以更改keypresskeyup最好使用KEYUP)或​​:

$(document).keyup(function(e){ 
    alert(e.keyCode); 
    if(e.keyCode==27){ 
     hide_menu(); 
    } 
}); 
相关问题