2013-03-06 34 views
0

工作我的jQuery代码在IE 9不工作,但在IE7,IE8,Chrome浏览器,FF工作。按键时()不在IE 9

这是我的代码:

$(document).keypress(function(){ 
     window.clearTimeout(); 
     window.setTimeout(function() { 
      //Do something... 
      return false; 
     }, 800); 
}); 
+0

这可能是一个缺乏'<!DOCTYPE HTML>'的。 – 2013-03-06 21:03:30

+0

什么是调用clearTimeout没有timeoutid点?它不应该在这种情况下,做任何事情(我怀疑这就是你的问题) – 2013-03-06 21:03:49

+0

谢谢,但我的网站是不是缺了它:( – 2013-03-06 21:15:24

回答

1

删除window.clearTimeout()或给它一个参数。 IE9 incorrectly requires它。

$(document).keypress(function(){ 
    //window.clearTimeout(); 
    window.setTimeout(function() { 
     alert("Worky!"); 
     return false; 
    }, 800); 
}); 

http://jsfiddle.net/Hztuv/1/

var timeout; 
$(document).keypress(function(){ 
    window.clearTimeout(timeout); 
    timeout = window.setTimeout(function() { 
     alert("Worky!"); 
     return false; 
    }, 800); 
}); 
+0

优秀!感谢您的帮助!我错过了'timeout'。 – 2013-03-06 21:26:54

3

尝试切换到的keydown,这是电脑不同,但要达到同样的效果

从教程:

为了了解KeyDown和按键之间的区别,这是理解“字符”和“关键”之间的区别是有用的。 “键”是计算机键盘上的物理按钮,而“字符”是通过按下按钮键入的符号。理论上,keydown和keyup事件表示键被按下或释放,而keypress事件表示键入的字符。理论的实现在所有浏览器中都不相同。

+0

谢谢您的回答,我试过,但它不工作。我使用jQuery代码对于影响如家搜索页面上谷歌搜索输入。当我打字什么的话,有些测试结果如下图。 – 2013-03-06 21:10:26