javascript - keypress() 是否仅在 Firefox 中聚焦文本字段时触发?

标签 javascript jquery html firefox

jQuery(document).ready(function ($) {
    $('body').keypress(function (e) {
        alert(e.which);
    });
});

当在 Chrome 中按下某个键但在 Firefox 中没有时,这将弹出一个警告。但是,如果我创建一个文本字段并将其聚焦,然后按一个键,Firefox 中将弹出一个警告。 (尽管 $('body') 仍然是 jQuery 对象。)

如何在 Firefox 中触发事件,即使文本字段未获得焦点?有解决方法吗?当在页面上的任意位置按下 Enter 键时,我将触发一个事件。

谢谢大家

最佳答案

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

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

关于javascript - keypress() 是否仅在 Firefox 中聚焦文本字段时触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6092147/

相关文章:

javascript - 下拉 JavaScript 加载

python - 删除 django 模板中的 [u'']

javascript - 如果发生无效输入,如何使函数返回到特定位置?

javascript - 为什么 "exact"不是 react 路由器中的默认行为

php - 如何使用 jQuery 和 CakePHP 更新 <div>?

javascript - 馅饼 block 太小

Javascript:检查元素是否在二维数组中的快速方法?

javascript - D3.js 可以使用 "whitespace"分隔值获取数据吗?

jQuery - 通过单击 <td> 删除表行 <tr>

html - 互联网浏览器 : relatively positioned button alignment in absolutely positioned box