Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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 jQuery中的keyevent不工作_Javascript_Jquery_Html_Keyup - Fatal编程技术网

Javascript jQuery中的keyevent不工作

Javascript jQuery中的keyevent不工作,javascript,jquery,html,keyup,Javascript,Jquery,Html,Keyup,我有一个HTML元素,我想在有人按下键盘上的“1”后用特定内容填充它。 我使用一个外部.js文件,其中包含以下代码: $(document).ready(function() { $("#myid").html("Hello, 0111"); $("#myid2").html("Lorem Ipsum"); $(document).keyup(function (pressed_key) { if (pressed_key.key === "1") {

我有一个HTML元素,我想在有人按下键盘上的“1”后用特定内容填充它。 我使用一个外部
.js
文件,其中包含以下代码:

$(document).ready(function() {
    $("#myid").html("Hello, 0111");
    $("#myid2").html("Lorem Ipsum");


    $(document).keyup(function (pressed_key) {
        if (pressed_key.key === "1") { 
            $("#myid").html("Button pressed");

            setTimeout(function () {
                $("#myid").html("Button not pressed");
            }, 1000);
        } 
    }

});
我的HTML正文如下所示:

<body>
    <div id="myid">0129</div>
    <div id="myid2"></div>
    <script src="js/libs/jquery/jquery.min.js"></script>
    <script src="js/script.js"></script>
</body>

0129
代码不工作,它输出HTML文档的内容

但是,如果我注释掉
.keyup
函数,其余的JavaScript代码将正常工作并相应地更改HTML内容


有什么想法吗?

问题是因为传递给
keyup
处理程序的参数是事件,而不是键入的字符的值

$(document).ready(function() {
  $("#myid").html("Hello, 0111");
  $("#myid2").html("Lorem Ipsum");

  $(document).keyup(function(event) {
    if (String.fromCharCode(event.which) === "1") {
      $("#myid").html("Button pressed");

      setTimeout(function(){
        $("#myid").html("Button not pressed");
      }, 1000);
    }
  });
});
要解决此问题,可以使用
String.fromCharCode()
,以及事件的
属性来获取字符,如下所示:

<body>
    <div id="myid">0129</div>
    <div id="myid2"></div>
    <script src="js/libs/jquery/jquery.min.js"></script>
    <script src="js/script.js"></script>
</body>
$(文档).ready(函数(){
$(“#myid”).html(“你好,0111”);
$(“#myid2”).html(“Lorem Ipsum”);
$(文档).keyup(函数(e){
if(String.fromCharCode(e.which)=“1”){
$(“#myid”).html(“按下按钮”);
setTimeout(函数(){
$(“#myid”).html(“按钮未按下”);
}, 1000);
}
});
});

0129

您需要将事件传递给keyup处理程序,而不是所键入字符的值

$(document).ready(function() {
  $("#myid").html("Hello, 0111");
  $("#myid2").html("Lorem Ipsum");

  $(document).keyup(function(event) {
    if (String.fromCharCode(event.which) === "1") {
      $("#myid").html("Button pressed");

      setTimeout(function(){
        $("#myid").html("Button not pressed");
      }, 1000);
    }
  });
});

0129

要检查
空间
聊天,您可以检查
按下的_键。这是一个整数,请尝试使用ascii码作为空格,示例:
32
。然后尝试:
if(按_key.which==32){…}
。步骤1,始终&下次无需询问,请&谢谢:检查浏览器控制台<代码>未捕获语法错误:无效或意外的令牌
,指的是行
设置超时(函数(){
将代码复制并粘贴到十六进制编辑器中,显示字节序列
ef bf bc
位于
…out
(有趣…
-因此,请重新键入该部分。这工作正常。使用谷歌jQuery源代码有什么好处?我刚刚将其加载到服务器,以便客户端从那里获取。