老师帮忙看下我的注释都对着没、有什么遗漏的吗,老师我还是想问问具体的keydown和keypress有什么区别

老师帮忙看下我的注释都对着没、有什么遗漏的吗,老师我还是想问问具体的keydown和keypress有什么区别

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>键盘事件</title>

    <script type="text/javascript" src="../js/jquery.js"></script>

</head>

<body>

    <input type="text" class="inputElement">

    <script>

$(document).ready(function(){

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

                /*

                    键盘按下或放开时触发的事件

                    1.不管英文是大写还是小写event.keyCode的值都相同

                         如:event.key:a或者A,它们的event.keyCode都相同

                       2.keydown:一直按某字符键不会一直触发,而是定时触发,受输入法影响

                        辅助键都能监听的到*/

                

                console.log(event.keyCode);//左上右下 37、38、39、40

                console.log(event.key);//ArrowLeft、ArrowUp、ArrowRight、ArrowDown

                console.log($(this));//input.inputElement

            })


            // $('.inputElement').keyup(function(event){

            //     console.log(event.keyCode);//左上右下 37、38、39、40

            //     console.log(event.key);//ArrowLeft、ArrowUp、ArrowRight、ArrowDown

            //     console.log($(this));//input.inputElement

            // })





            /*  

                 键盘按下时触发--一直按着某字符键则会一直触发事件

                 1.keypress:区分英文大小写的keyCode值,大写a-97,小写a-65

                 2.受输入法影响,打中文字没反应

                 3.上下左右删除键等辅助按键不能监听到

            */

            // $('.inputElement').keypress(function(event){

            //     console.log(event.keyCode);//左上右下 37、38、39、40

            //     console.log(event.key);//ArrowLeft、ArrowUp、ArrowRight、ArrowDown

            //     console.log($(this));//input.inputElement

            // })

        });



        //keydown和keypress相同点及区别

            /*

                1.相同点:

                     两者都受输入法影响,中文输入都监听不到

                     两者的event.key都相同

                2.不同点

                     keydown一直按着字符键不会都触发而是定时触发

                     keypress一直按着字符键就会都触发


                     keydown的英文字母的大小写的keyCode值都相同

                     keypress的英文字母的大小写的keyCode值则是Ascii码值


                     keydown能监听到辅助键如上下左右删除键等

                     keypress则监听不到辅助键

            */

    </script>

</body>

</html>


正在回答

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

2回答

同学你好,针对问题进行回复:

1、这是浏览器的表现形式不一样,老师在Microsoft Edge浏览器中测试,keydown也是能被监听的到,

如下图所示:在input框中输入内容,触发一次keydown,再输入内容的时候,又会触发一次keydown;建议同学使用谷歌浏览器进行测试哦。

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

2、同学注释里的内容没有问题哦,非常棒!

祝学习愉快!

好帮手慕鹤 2020-11-22 11:13:12

同学你好,注释中有3点是理解错误的哦,如下:

1、keydown中文输入的时候,能够监听到输入的字符;keypress中文输入的时候,监听不到输入的字符。如下图:

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

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

2、 keydown一直按着字符键是一直触发的,如下:

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

3、keydown是按键被按下时,触发keydown事件。

keydown跟keypress的区别中,同学整理的其中两点是正确的,老师给你总结一下:

(1)keydown中文输入的时候,能够监听到输入的字符; keypress中文输入的时候,监听不到输入的字符

(2)keydown的英文字母的大小写的keyCode值都相同;keypress的英文字母的大小写的keyCode值则是Ascii码值

(3)keydown能监听到辅助键如上下左右删除键等;keypress则监听不到辅助键 

祝学习愉快!

  • 提问者 母鸡阿 #1
    老师为什么我用的Microsoft Edge浏览器在中文输入下keydown和keypress都监听不到呢
    2020-11-22 14:09:19
  • 提问者 母鸡阿 #2
    //keydown和keypress相同点及区别 /* 1.相同点: 两者一直按着字符键都是一直触发事件的 两者的event.key都相同 2.不同点 keydown能监听到中文输入时的字符 keypress监听不到中文输入时的字符 keydown的英文字母的大小写的keyCode值都相同 keypress的英文字母的大小写的keyCode值则是Ascii码值 keydown能监听到辅助键如上下左右删除键等 keypress则监听不到辅助键 */ // keyup /*内容只有在按键抬起时,才会被真正输入到input中,所以当keyup事件触发时,新输入的内容已经在input中了,因为可以正确获取到输入的内容。而keydown是按键按下时就触发,此时内容没有被输入到input中,因此第一次输入的内容,无法获取到,造成获取的结果不正确。*/ 老师现在的注释对吗
    2020-11-22 14:18:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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