2013-03-06 78 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