javascript - 未捕获的类型错误 : Property 'which' of object #<Object> is not a function

标签 javascript jquery switch-statement

这段代码会在 Chrome 的 JavaScript 控制台中生成该错误,我不知道为什么。在谷歌搜索有类似问题的人后,我没有找到任何 D:

错误消息表明问题出在 event.which() 但我不明白我的使用方式与预期有什么不同,其他有类似情况的人似乎也没有遇到问题。

$(document).keypress(function(event) {
    switch (event.which()) {            
        case 38 :   keyNorthPressed = true;
                    break;
        case 39 :   keyEastPressed = true;
                    break;
        case 40 :   keySouthPressed = true;
                    break;
        case 41 :   keyWestPressed = true;
                    break;
    }
});

提前致谢。

最佳答案

答案here .

有两种可能的方法可以检索事件 key 代码:

event.keyCode or event.which

您的代码应该是:

$(document).keypress(function(event) {
    var code = event.keyCode || event.which;
    switch(code) {       
        case 38 :   keyNorthPressed = true;
                    break;
        case 39 :   keyEastPressed = true;
                    break;
        case 40 :   keySouthPressed = true;
                    break;
        case 41 :   keyWestPressed = true;
                    break;
    }
});

event.keyCode和event.which是属性,不是方法,不能用()来调用。

关于javascript - 未捕获的类型错误 : Property 'which' of object #<Object> is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15040892/

相关文章:

jquery - Highstocks - 如何更改默认缩放

javascript - Jquery ajax 结果在 IE 中无法正确显示

prolog - 在Prolog中切换语句

java - 变量声明如何在 switch 语句中的 case 中工作

javascript - 多个选项的indexOf

javascript - 登录模块适用于除 Chrome 之外的任何地方

javascript - HTML 文件作为 AngularJS 指令中 Bootstrap 弹出窗口的内容

javascript - openJSCAD 包含文件

jquery - 使用 jQuery 单击时进行 CSS 转换

c++ - switch case 语句中包含成员变量 in case