为什么用keydown/keypress都会慢一位呢,删除的时候多一位;而用keyup就不会呢

为什么用keydown/keypress都会慢一位呢,删除的时候多一位;而用keyup就不会呢

<!DOCTYPE html>

<html>


<head>

    <meta charset="UTF-8">

    <title>习题</title>

</head>


<body>

    <input type="text" value="">

    <p></p>

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>

    <script>

        $(document).ready(function(){

            $('input').keydown(function(event){

                $('p').text($(this).val())

            })

        })

    </script>

</body>


</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,问题解答如下:

1、因为文字显示在输入框中,是在keyup阶段。否则在keydown/keypress阶段获取输入框的内容是当前输入内容前面的,所以会慢一位。

2、keypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,所以删除时文字没有改变,其他两个事件是可以的。

3、代码中使用keyup事件就可以

http://img1.sycdn.imooc.com//climg/5e58848b0927c13904230224.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

提问者 Elisa呀 2020-02-28 00:36:03

而且,为什么keypress不能删除呢

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师