我正在尝试使用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识别它?
答案 0 :(得分:2)
jQuery确实支持event.which
。你究竟如何绑定你的处理程序?你在使用jQuery吗?如果你在做:
jQuery("#element").click(function(evt) {
//evt is a jQuery-normalized event object
});
它应该工作。您可能不希望使用event
(请注意我将evt
与event
传递)作为参数,因为它将与IE的event对象发生冲突。我相信这是你问题的根源。
修改强>
阅读完评论后,您需要在<HEAD>
引用的Javascript文件中执行以下操作:
jQuery(document).ready(function() {
//event-handling binding-code
});
答案 1 :(得分:0)
我在IE9中有过相同的经历。可以使用mousedown
或mouseup
而不是click
修复此问题。
答案 2 :(得分:-1)
这些人之前对事实一无所知,请看这里 - &gt; http://api.jquery.com/event.which/
我不确定我在做什么不同,但是我的公司软件使用e.which就像疯了一样在IE 7-9中完美运行
见工作fiddle here