2012-01-18 126 views
0
<script type="text/javascript" src="css/jquery-1.7.1.js"></script> 


<script type="text/javascript"> 


function slidedown(id){ 

$('#rerooftext').hide(0); 
$('#inspectiontext').hide(0); 
$('#remodelingtext').hide(0); 
$('#restorationstext').hide(0); 
$('#commtext').hide(0); 
$('#painttext').hide(0); 

setTimeout(300); 
$('#'+id.id+'text').fadeToggle(1000); 

}; 
</script> 

在這裏我有一個函數,隱藏幾個包含文本的div,然後使用jquery函數顯示點擊鏈接的div。這段代碼在chrome中效果很好,但是IE瀏覽器並沒有執行動畫,當我點擊鏈接時,它隱藏了當前div的reroof,但未能顯示新的div,代碼是$('#'+ id.id + '文本')fadeToggle(1000)。jQuery的效果不工作在Internet Explorer

任何想法,爲什麼會發生這種情況?

+2

哪個版本的IE? 2.0? 6? 7? – 2012-01-18 16:34:41

+0

你怎麼稱呼slidedown()? – feeela 2012-01-18 16:36:22

+0

函數是如何調用的? HTML的外觀如何? – Pointy 2012-01-18 16:36:23

回答

3

這是因爲您的代碼中存在一個錯誤setTimeout(300);,因爲直到您執行淡入淡出動畫時才執行該操作。

setTimeout需要2個參數。首先是函數指針或包含要執行的代碼的字符串,第二個參數是以毫秒爲單位的指定函數或代碼執行的時間。

評論該行,因爲它是無用的,嘗試它會工作。如果你想延遲一段時間的動畫,你可以看看jQuery delay

function slidedown(id){ 

    $('#rerooftext').hide(0); 
    $('#inspectiontext').hide(0); 
    $('#remodelingtext').hide(0); 
    $('#restorationstext').hide(0); 
    $('#commtext').hide(0); 
    $('#painttext').hide(0); 

    //setTimeout(300); 

    $('#'+id.id+'text').fadeToggle(1000); 

}; 
+0

其中IE版本setTimeout(300)失敗? – BiAiB 2012-01-18 16:47:02

+0

我認爲在所有的IE版本(至少<我測試了IE9)與錯誤(無效參數)。我發現即使在FF中也出現了類似的錯誤。但在'Chrome'中,它工作正常,沒有發生任何錯誤。 – ShankarSangoli 2012-01-18 16:55:23

+0

非常感謝您的幫助! – user541597 2012-01-18 17:32:28

相關問題