javascript - body 上的按键?

标签 javascript jquery

我想在我按下某个键时收到提醒。

我试过:

$('body').live('keyup', function() {
     alert('testing');
});

但是不行,会不会是选择器的问题?

更新:

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>TODO supply a title</title>
        <script type="text/javascript" src="../system/media/js/jquery/jquery.js"></script>
        <script type="text/javascript">  
            $(document).ready(function() {
                $('body').live('keyup', function() {
                    alert('testing');
                });   
            });   
        </script>
    </head>
    <body>
        <p>
            TODO write content
        </p>
    </body>
</html>

当我按下某些东西时它不会提醒我,尽管当我将 keyup 替换为 mouseover 并将鼠标悬停在 TODO write content

为什么它不起作用?

最佳答案

尝试使用 $("html")$("*") 而不是 $("body")。为了触发 body 上的 keyUp 事件,必须聚焦 body 节点或其子节点之一。您可以在您的示例中通过添加文本输入并将鼠标聚焦到该输入来完成此操作。您真正想要的是捕获任何按键,因此 $("html") 应该可以工作。

编辑:我认为您的示例可能有效,但无论如何,要有条件地运行逻辑,您可以尝试这样做:

if ($(document.body).is(".focusOnKeypress")) {
   $("html").live(...);
}

或者,我认为这也可行:

$("body:not(.noFocusOnKeypress)").parent("html").live(...);

关于javascript - body 上的按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226346/

相关文章:

javascript - Firefox javascript 书签问题

javascript - jQuery MagicSuggest 禁用选择

javascript - 单击加载页面之前显示加载

jQuery 将 Html 转换为文本并返回

javascript - 我自己的工具提示中的 href

javascript - 无法将 ruby​​ 代码添加到 jquery

javascript - 如何在 jquery 验证器中显示 'looks good' 消息?

javascript - JQueryUI 工具提示设置被忽略

javascript - 在javascript中用闭包迭代时,你如何使用for循环 'continue'

javascript - 如果提供相等的类,angular2 测试中的 useClass 字段是否有任何区别?