jQuery event.which在IE中不工作

jQuery event.which在IE中不工作,jquery,events,Jquery,Events,我正在尝试使用event.which jQuery函数获取事件的代码。它在FF中工作得很好,但在IE8中我只得到了“未定义”。这在IE8中不起作用有什么原因吗?我使用的是jQuery版本1.3.2,代码如下(简化) 谢谢, 大都会 **编辑** 基本上,我希望能够做的是拥有一个带有onkeyup事件属性的HTML元素,该属性将调用handleInput函数。以下是我希望HTML的外观 <input type="text" value="" onkeyup="handleInput(even

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

谢谢, 大都会

**编辑**

基本上,我希望能够做的是拥有一个带有onkeyup事件属性的HTML元素,该属性将调用handleInput函数。以下是我希望HTML的外观

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

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

jQuery确实支持。您到底是如何绑定处理程序的?您正在使用jQuery吗?如果你正在做:

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

});
它应该会起作用。您可能不想使用
事件
(请注意,我正在传递
evt
事件
)作为参数,因为它会与IE的对象发生冲突。我相信这是你问题的根源

编辑

在阅读您的评论之后,您需要在您从
引用的Javascript文件中执行类似操作:


这些人对事实一无所知,请看这里-->

我不确定我在做什么不同,但我公司的软件使用的是e,它非常疯狂,在IE7-9中运行得非常好


参见“工作”

我在IE9中也有同样的经验。可以使用
mousedown
mouseup
而不是
click

来修复此问题,谢谢您的回复。现在我从一个HTML元素调用这个函数并传递“event”。有没有办法传入这样的事件并让jQuery识别它?因为它是动态的,所以我并不总是知道我将它附加到哪个元素。当你说元素是动态的时,你是什么意思?我在库中使用这个函数,所以我将在许多不同的地方使用这个函数。我真的不想添加jQuery(“#元素”)。在我使用的每个项目的javascript文件中单击。我希望能够将它与上面的HTML元素保持内联。不管是哪种方式,都需要将表示(HTML)与行为(Javascript)分开。因此,您至少需要一个在
中引用的Javascript文件。看看我的答案,我不这么认为。即使是这样,那也是一种冒险的方式。当您知道事件不明确时,为什么要使用
事件
?所以我的建议是以编程方式绑定事件:)另外,尝试使用
$.browser
来确定浏览器类型,
如果($.browser.safari){//do work}如果($.browser.mozilla){//do work}如果($.browser.msie){//do work}是的,我知道。我已经有很长一段时间没有研究这个问题了,但是它显然不再是一个问题了,哈哈。我不知道我做了什么,我也不知道为什么我接受了上面的答案。但我一定有很好的理由。我不主张使用$.browser。我敢肯定它也被弃用了。
jQuery("#element").click(function(evt) {
 //evt is a jQuery-normalized event object

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