1
这段代码在Chrome的JavaScript控制台中产生错误&我不知道为什么。在搜索了类似问题的人之后,我还没有找到任何D:Uncaught TypeError:属性'which'的对象#<Object>不是函数
错误消息表明问题出在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;
}
});
在此先感谢。
错误告诉你'event.which'不是一个函数,而且看[**文档**](http://api.jquery.com/event.which/)证实了这一点。这些示例显示了如何使用它。 – 2013-02-23 13:12:04
好的,我的印象是'switch'声明并不一定需要函数,但是价值会起作用,是不是这种情况? – gideonparanoid 2013-02-23 13:14:02
当然,您可以将任何值传递给'switch'。这个问题与'switch'无关。你正在尝试**调用''event.which',但它不是一个函数。只要做'switch(event.which){'。其他例子:'var foo = {bar:5};'。 'foo.bar()'会抛出相同的错误,因为'foo.bar'是一个数字,而不是函数。 – 2013-02-23 13:15:13