Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 身体上的钥匙?_Javascript_Jquery - Fatal编程技术网

Javascript 身体上的钥匙?

Javascript 身体上的钥匙?,javascript,jquery,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="ht

每当我按下一个键,我都想得到提醒

我试过:

$('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>

提供头衔
$(文档).ready(函数(){
$('body').live('keyup',function()){
警报(“测试”);
});   
});   

TODO写入内容

当我按下某个按钮时,它不会提醒我,尽管当我将
keyup
替换为
mouseover
并将鼠标移到
TODO write content


为什么它不工作?

它不工作,因为您的页面没有焦点。。你需要先点击页面,它就会工作

或者,您可以强制将焦点设置为输入元素,从而将焦点设置为页面

$(function(){ $('input_selector_here').focus(); });
尝试使用
$(“html”)
$(“*”)
而不是
$(“正文”)
。为了激发body上的
keyUp
事件,必须聚焦body节点或其子节点之一。在示例中,可以通过添加文本输入并将鼠标聚焦到该输入来实现这一点。您真正想要的是捕获任何按键,因此
$(“html”)
应该可以工作

编辑:我认为您的示例可能有效,但在任何情况下,要有条件地运行逻辑,您可以尝试以下方法:

if ($(document.body).is(".focusOnKeypress")) {
   $("html").live(...);
}
或者,我认为这也会起作用:

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

听窗户的声音

$(window).keydown(function(event){
    alert(event.keyCode);
});
希望这会有所帮助

$(document.body).on('keyup', function (e) {
    alert('In');
}):

我试过这个密码。这很好用

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

当鼠标位于文本框或其他输入控件内时,您是否在按键?否。我没有任何东西聚焦。只需按下一个键,它就会自动聚焦并粘贴到输入字段中的该按键。如果我输入“hello”,我希望这些信息显示在输入框中。你的测试对我有效。你能提供更多的信息,或者一个演示网页吗?你是否在任何输入字段中输入?我只需单击外部并键入一些内容,但我没有收到任何警报…当我从输入字段中键入内容或使用鼠标覆盖时,它就会工作..上面的代码对我有效。确保页面具有焦点,并且某些内容没有停止事件传播(另一个keyup事件处理程序).我已经点击了该页面,因此在我键入任何内容之前它会被聚焦…但仍然不起作用..我将用另一个页面再试一次,看看我当前的页面是否有问题page@ajsie如果单击
元素以外的任何位置,则事件将在文档而不是正文中注册。主体与内容的高度相同。试试看,谢谢,它奏效了。如何选择整个页面而不是某个特定的类。尝试了$('html:not(.noFocusOnKeypress)'),但不起作用这在IE8或更低版本中不起作用。