为了账号安全,请及时绑定邮箱和手机立即绑定

keydown与keyup为什么长按一个键,总是会显示?我看有同学也有这个问题,但没有好的回答,有人会吗?下面是代码。

<!DOCTYPE html>

<html>


<head>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title></title>

    <style>

    .left div,

    .right div {

        width: 500px;

        height: 50px;

        padding: 5px;

        margin: 5px;

        float: left;

        border: 1px solid #ccc;

    }

    

    .left div {

        background: #bbffaa;

    }

    em{

        font-weight: 900;

        color: red;

    }

    </style>

   <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js"></script>

</head>


<body>

    <h2>keydown()与keyup()事件</h2>

    <div class="left">

        <h4>测试一</h4>

        <div class="aaron">监听keydown输入:

            <input class="target1" type="text" value="" /><br />

            按下显示输入的值:<em></em>

        </div>

        <h4>测试二</h4>

        <div class="aaron">监听keyup输入:

            <input class="target2" type="text" value="" /><br />

            松手显示输入的值:<em></em>

        </div>

    </div>


    <script type="text/javascript">

    //监听键盘按键

    //获取输入的值

    $('.target1').keydown(function(e) {

        $("em:first").text(e.target.value)

    });


    //监听键盘按键

    //获取输入的值

    $('.target2').keyup(function(e) {

        $("em:last").text(e.target.value)

    });


    </script>


</body>


</html>


正在回答

5 回答

keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本

0 回复 有任何疑惑可以回复我~

我这里keyup长按不松不会触发显示

0 回复 有任何疑惑可以回复我~

W3C的标准,按下键不松会一直触发keydown事件。

0 回复 有任何疑惑可以回复我~

keydown方法中长按会跟随按下的显示,这属于按下的方法的正常显示。keyup则是等你长按之后松开键盘才会显示出来

0 回复 有任何疑惑可以回复我~
#1

夜阑卧听风吹雨y

不,keyup长按之后不松也会显示
2018-07-13 回复 有任何疑惑可以回复我~
#2

sfanxi 回复 夜阑卧听风吹雨y

我这长按不松不会显示
2018-08-12 回复 有任何疑惑可以回复我~

个人认为是电脑键盘的构造问题,监控的是键盘按下时产生输入信号或者输入信号截断的电位变化

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

keydown与keyup为什么长按一个键,总是会显示?我看有同学也有这个问题,但没有好的回答,有人会吗?下面是代码。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号