jQuery按键重复

时间:2018-07-16 23:57:10

标签: jquery html keypress

我正在尝试显示用户使用jQuery输入的内容以检测按下的键。

例如,如果用户按下“ a”,则显示“ a”。然后,当他们按下“ z”时,将显示“ az”,依此类推。

我的代码:

<script>
    $(document).ready(function() {
        var res = "";

        $("*").keypress(function( event ) {
            res = res + String.fromCharCode(event.which);
            $("#go2").html(res);
        });
    });
</script>


<p id="go2"></p>

显示String.fromCharCode(event.which)而不是res会正确显示按下的键,但是当前代码会重复这些键。

当我按“ a”时,将显示“ aaa”。按下新的键,例如“ z”,然后显示“ aaazzz”。为什么要复制密钥?

1 个答案:

答案 0 :(得分:3)

问题出在您的*选择器中,该选择器同时应用于<body><html>

仅增加对body的特异性将导致重复项消失:

$(document).ready(function() {
  var res = "";
  $("body").keypress(function(event) {
    res = res + String.fromCharCode(event.which);
    $("#go2").html(res);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="go2"></p>