2011-05-23 59 views
2
jQuery(document).ready(function ($) { 
    $('body').keypress(function (e) { 
     alert(e.which); 
    }); 
}); 

时按下某个键在Chrome而不是Firefox中这将弹出一个警告。但是,如果我创建了一个文本字段并将其聚焦,然后按一个键,则会在Firefox中弹出一条警报。 (即使$(“主体”)仍然是jQuery对象。)当textfield专注于Firefox时,keypress()只会触发吗?

我怎样才能获得该事件在Firefox火,即使一个文本框不集中?有没有解决方法?当在页面上的任何地方按下Enter键时,我将发射一个事件。

谢谢你们

回答

7

如果您在页面上没有的元素,浏览器可能会以为<body>元素(或任何其后代),没有焦点。试试你的事件绑定到文档:

jQuery(document).ready(function ($) { 
    $(document).keypress(function (e) { 
     alert(e.which); 
    }); 
}); 
+0

感谢后,我<3你 – Nathan 2011-05-23 02:22:16

5

@DarthJDG是对的,但你还是应该将焦点设置在窗口上,如果你想监听页面加载后immidiately按键。在某些情况下,浏览器会将焦点留在地址栏上。所以加:

$(window).focus(); 

设立按键处理

相关问题