gpt4 book ai didi

javascript - jQuery 中的 keyevent 不起作用

转载 作者:可可西里 更新时间:2023-11-01 13:21:15 26 4
gpt4 key购买 nike

我有一个 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>

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

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

有什么想法吗?

最佳答案

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

要解决此问题,您可以使用 String.fromCharCode() 以及事件的 which 属性来获取字符,如下所示:

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

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

setTimeout(function() {
$("#myid").html("Button not pressed");
}, 1000);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myid">0129</div>
<div id="myid2"></div>

关于javascript - jQuery 中的 keyevent 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47693234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com