为什么要用keyCode而非key?

为什么要用keyCode而非key?

我在firefox测试代码不成功,然后看控制台信息,当我输入的时候keyCode显示是undefined,于是我把变蓝的部分改了:

        $("input[name='color']").keypress(function(event){
            //console.log(event);
            if(event.key=="B"){
                $("#bg").css("background-color", "green");
                $("#bg").text("");
            }
            else if(event.keyCode==71){
                $("#bg").css("background-color", "green");
                $("#bg").text("");
            }
        });

这样蓝色部分成功了。想问

1. 为什么是undefined?

2. 为什么我们要用keyCode而非key?

正在回答

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

2回答

经测试,同学的这个keyCode==71是可以的。

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

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 慕后端4135106 提问者 #1
    我的firefox不行。。。 可能是什么配置吧
    2019-03-05 14:33:36
好帮手慕阿莹 2019-03-05 11:22:59

1、出现undefined的原因是类型不匹配造成的,

key对应的是对应的字符

而keyCode对应的是字符对应的数字

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

如果用keyCode对应字符的时候,就会没有办法相对应了,就像同学写的代码一样:

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

用key去对应字母,应keyCode去对应数字。

这样就是成功的了:

另外同学之前这里写的green,改成blue就可以了

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

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 慕后端4135106 #1
    我原本写的就是keyCode==71,应该是没错,但浏览器下按相应的键没有反应
    2019-03-05 12:18:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

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

在线咨询

领取优惠

免费试听

领取大纲

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