jQuery(document).ready(function ($) {
$('body').keypress(function (e) {
alert(e.which);
});
});
当在Chrome中按下某个键但在Firefox中没有按键时,会弹出警告。但是,如果我创建一个文本字段并将其聚焦,然后按一个键,Firefox中会弹出一个警告。 (即使$('body')仍然是jQuery对象。)
即使文本字段没有聚焦,我怎样才能在Firefox中触发事件?有解决方法吗?当在页面的任何位置按下Enter键时,我将触发一个事件。
谢谢你们
答案 0 :(得分:7)
如果页面上没有元素,浏览器可能会认为<body>
元素(或其任何后代)没有焦点。尝试将您的活动绑定到文档:
jQuery(document).ready(function ($) {
$(document).keypress(function (e) {
alert(e.which);
});
});
答案 1 :(得分:5)
@DarthJDG是对的,但是如果你想在页面加载后立即监听按键,你仍然应该把注意力集中在窗口上。在某些情况下,浏览器会将焦点放在地址栏上。所以补充:
$(window).focus();
设置按键处理程序后