jQuery event.which不在IE中工作

时间:2010-03-09 20:44:58

标签: jquery events

我正在尝试使用event.which jQuery函数获取事件的代码。它在FF中工作得很好,但在IE8中我只是“未定义”。有什么理由在IE8中不起作用吗?我使用的是jQuery 1.3.2版,代码如下(简化版)。

function handleInput(event) {
   //Get the character code of the pressed button
   keycode = event.which;
}

谢谢, 大都市

**已编辑**

基本上我想要做的是拥有一个带有onkeyup事件属性的HTML元素,该属性将调用handleInput函数。这就是我想要HTML的样子。

<input type="text" value="" onkeyup="handleInput(event)" />

有没有办法像这样传递“事件”并让jQuery识别它?

3 个答案:

答案 0 :(得分:2)

jQuery确实支持event.which。你究竟如何绑定你的处理程序?你在使用jQuery吗?如果你在做:

jQuery("#element").click(function(evt) {
 //evt is a jQuery-normalized event object

});

它应该工作。您可能不希望使用event(请注意我将evtevent传递)作为参数,因为它将与IE的event对象发生冲突。我相信这是你问题的根源。

修改

阅读完评论后,您需要在<HEAD>引用的Javascript文件中执行以下操作:

jQuery(document).ready(function() {
   //event-handling binding-code
});

答案 1 :(得分:0)

我在IE9中有过相同的经历。可以使用mousedownmouseup而不是click修复此问题。

答案 2 :(得分:-1)

这些人之前对事实一无所知,请看这里 - &gt; http://api.jquery.com/event.which/

我不确定我在做什么不同,但是我的公司软件使用e.which就像疯了一样在IE 7-9中完美运行

见工作fiddle here