搜索

首页  >  问答  >  正文

javascript - js的按键的键值减去一个数字,怎么就成了NaN了

这是代码和浏览器截图,第一个是number 第二个也是number 但是第三个就是NaN了
我想取得一个组合键,比如Alt+1……Alt+9 然后让键值减去一个数,对应select的option的值
但是一直报NaN

1

2

3

4

5

6

7

8

9

10

<code>$(function(){

    $(document).keydown(function(event){

        if(event.keyCode <=57 && event.keyCode >= 49 && event.altKey){

            var selectval = (event.keyCode - 48);

            console.log(typeof(event.keyCode));

            console.log(typeof(selectval));

            console.log(selectval);

        }

    });

})</code>

为情所困为情所困2796 天前717

全部回复(6)我来回复

  • PHP中文网

    PHP中文网2017-05-19 10:32:37

    回复
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:32:37

    雷雷

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:32:37

    用原生写的没啥毛病啊

    1

    2

    3

    4

    5

    6

    7

    8

    <code>document.addEventListener('keydown',function(event){

        if(event.keyCode <=57 && event.keyCode >= 49 && event.altKey){

                var selectval = (event.keyCode - 48);

                console.log(typeof(event.keyCode));

                console.log(typeof(selectval));

                console.log(selectval);

            }

    },false);</code>

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:32:37

    用event.ctrlKey,event.shiftKey,event.altKey判断是否按下了ctrl键、shift键以及alt键

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:32:37

    换了几个环境,终于出现这种情况,都是谷歌最高版本,不知道怎么有几台电脑就不会undefined

    新变量接收的keyCode 为undefined ;
    至于为什么我暂未搞懂,麻烦哪位大神解释一下其中的机制

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:32:37

    jQuery的话,帮你做了兼容处理的,请用 event.which代替event.keyCode.

    不用jQuery:

    1

    2

    <code class="javascript">// 获取用户单击键盘的“键值”

    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;</code>

    回复
    0
  • 取消回复