2014-02-19 60 views
0

對不起,我必須要求這個,因爲這裏有很多類似的問題,但我找不到我的問題的解決方案。我使用setTimeout,它適用於瀏覽器,Chrome,ff以及IE9和更高版本。但在IE8中,應該在超時後執行的操作不起作用。我希望someboday可以幫我一下吧......setTimeout作爲對象在IE8和更低

var searching = { 
    initialize: function (config) { 
     this.wait(config.time); 
    }, 
    wait: function(time) { 
     setTimeout(function(){  
      $("#example-div").hide; 
     }, time); 
    } 
} 
$("#example-submit").click(function() { 
    searching.initialize({time: 4000}); 
} 
+3

'$( 「#示例-DIV」)hide'沒有按」你看起來不錯,你需要調用這個函數。而你錯過了一個閉幕式。 – elclanrs

回答

0

原因:有一個在你的腳本發生錯誤,和其他瀏覽器繼續執行腳本時,錯誤是在的setTimeout/setInterval的

萬一的IE這沒有發生。

因此,無論您應該修復代碼還是將代碼包裝到try{...}catch(e){...}塊中。

0

該代碼幾乎是正確的。你缺少一些paranthesis:

HTML:

<div id="example-div">example-div</div> 
<div id="example-submit">example-submit</div> 

JS:

var searching = { 
    initialize: function (config) { 
     this.wait(config.time); 
    }, 
    wait: function(time) { 
     setTimeout(function(){  
      $("#example-div").hide(); 
     }, time); 
    } 
} 
$("#example-submit").click(function() { 
    searching.initialize({time: 4000}); 
}); 

小提琴:http://jsfiddle.net/t6NEQ/2/