jQuery代码不适用于IE 8

jQuery代码不适用于IE 8,jquery,Jquery,下面的代码可以在FF和Chrome上完美地工作,但在IE8中却不行 $(window).keyup(function(e) { var code = e.which if (code == 9) { alert("do stuff"); cellContent(); autoDate(); } }); 此代码将识别该选项卡,并执行函数cellContent()和autoDate()。我添加了警报,以查看IE8是

下面的代码可以在FF和Chrome上完美地工作,但在IE8中却不行

$(window).keyup(function(e) {
    var code = e.which
    if (code == 9) 
    { 
        alert("do stuff");
        cellContent();
        autoDate();
    }
});
此代码将识别该选项卡,并执行函数cellContent()和autoDate()。我添加了警报,以查看IE8是否使用过此功能,但它似乎无法识别


提前谢谢

为什么不试着用这个语句来决定使用什么值呢。它似乎在所有主要的浏览器上都适用于我

var code=(e.keyCode?e.keyCode:e.which)
我不完全确定技术上的解释,但快速搜索给了我以下页面:

它包含一个表,其中引用了每个主要浏览器及其支持的属性

  • event.keyCode
  • 事件,哪个
  • event.charCode

继续评论:

此外,请尝试使用以下语法绑定事件:

$(窗口).bind('keyup',回调)

或者尝试将事件绑定到文档:

$(文档).bind('keyup',回调)


我找到了答案!我所要做的就是不去做

$(window).keyup(function(e) {
var code = e.which
if (code == 9) 
{ 
    alert("do stuff");
    cellContent();
    autoDate();
}
});
我只需将$(窗口)更改为$(文档)


谢谢您的帮助

我想这需要先进行基本调试。你测试过IE中的
code
值是多少吗?请看:@Richard:答案是
IE中不支持的
。这是真的,但不相关:jQuery。乔,这段代码在空白页中单独出现(显然是jQuery之类的)在Chrome上也不起作用。如果你能提供一个更完整的测试用例(最好是在你的问题中),人们可能会提供帮助。jQuery.@T.J.Crowder-我没意识到它做到了!谢谢你的信息!我想我已经习惯了“不能太小心”:P@Lix-我对javascript和jQuery还是相当陌生的。如果你能详细阐述一下,那就太好了@Lix:注意Joe使用的是
keyup
,而不是
keypress
。和
$(窗口)。keyup(函数…
$(窗口)完全相同。bind(函数…
@T.J-true-true-修复了这个问题。谢谢关于键控/绑定的区别——我发现在处理可怕的“早期”IE家庭时,有时你必须把它们混在一起,才能从那些残骸中得到反应;)
$(document).keyup(function(e) 
{

 var code = (e.keyCode ? e.keyCode : e.which);
 if (code == 9) 
  { 
    alert("hello world");
    cellContent();
    autoDate();
  }

});