Jquery 按F5键不会触发mousup事件

Jquery 按F5键不会触发mousup事件,jquery,javascript-events,Jquery,Javascript Events,我正在使用jQuery的keyup事件。除F5外,所有按键均可正常工作。 代码如下: <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(document).ready(function(){ $(document)

我正在使用jQuery的
keyup
事件。除F5外,所有按键均可正常工作。 代码如下:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $(document).keyup(function(e){
    alert(e.keyCode); // This is not working always when we press F5
  });
});
</script>
</head>
</html>

$(文档).ready(函数(){
$(文档).keyup(函数(e){
警报(e.keyCode);//当我们按F5时,这并不总是起作用
});
});
我在按下所有键时都会保持警惕,但F5不能正常工作有时使用F5触发警报,有时不触发。我在Chrome和Firefox上都试过了。

按F5重新加载页面

页面重新加载似乎是在
keydown
keypress
事件中启动的,因此您的
警报发出得太晚了。根据您按键的时间长短,仍然会触发
mouseup
事件,警报会短暂显示,但不会阻止重新加载过程

如果还将处理程序绑定到
keydown
事件,则页面重新加载仅在警报解除后执行

(首先在空的HTML区域中单击,确保其聚焦)

按F5重新加载页面

页面重新加载似乎是在
keydown
keypress
事件中启动的,因此您的
警报发出得太晚了。根据您按键的时间长短,仍然会触发
mouseup
事件,警报会短暂显示,但不会阻止重新加载过程

如果还将处理程序绑定到
keydown
事件,则页面重新加载仅在警报解除后执行


(首先在空HTML区域中单击,确保其聚焦)

如果捕获“按键”事件,也会阻止“t”键。出于某种原因,如果使用“keypress”事件(在chrome调试器中看不到),则会捕获keycode和ASCII keycode。F5键是'116',但't'的ASCII键码也是116,因此在'keypress'事件中,您会阻止F5,但也会阻止应用程序范围内的't'

那么,试试这个:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){


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

  });   
 $(document).bind('keypress', function(event) {
    if (event.keyCode == 116){
     alert("f5"); 
    }    

  });  
});
</script>

$(文档).ready(函数(){
$(文档).bind('keyup',函数(e){
警报(如钥匙代码);
});   
$(文档).bind('keypress',函数(事件){
如果(event.keyCode==116){
警报(“f5”);
}    
});  
});

如果捕获“按键”事件,也会阻止“t”键。出于某种原因,如果使用“keypress”事件(在chrome调试器中看不到),则会捕获keycode和ASCII keycode。F5键是'116',但't'的ASCII键码也是116,因此在'keypress'事件中,您会阻止F5,但也会阻止应用程序范围内的't'

那么,试试这个:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){


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

  });   
 $(document).bind('keypress', function(event) {
    if (event.keyCode == 116){
     alert("f5"); 
    }    

  });  
});
</script>

$(文档).ready(函数(){
$(文档).bind('keyup',函数(e){
警报(如钥匙代码);
});   
$(文档).bind('keypress',函数(事件){
如果(event.keyCode==116){
警报(“f5”);
}    
});  
});

可能是因为
F5
导致浏览器重新加载页面?至少对我来说是这样。但它必须先发出警报,然后重新加载页面。你想重新加载吗?可能会有帮助。可能是因为
F5
导致浏览器重新加载页面?至少对我来说是这样。但它必须先发出警报,然后重新加载页面。你想重新加载吗?也许会有帮助。