2013-08-27 23 views
0

美好的一天。爲什麼delay()不工作?

我想讓腳本在頁面加載2秒後開始工作。

爲此,我使用的腳本:

setTimeout(function() { 
    $("#searchbanner").animate({width: "515"}, 1500); 
}, 2000);​ 

但是不行......

請告訴我怎麼做的權利?

+0

可能重複的[I可以使用.delay()一起在jQuery中使用.animate()?](http://stackoverflow.com/questions/4247772/can-i-use-delay-together-with-animate-in-jquery) –

回答

4

嘗試使用jQuery的delay()方法:

$(document).ready(function() { 
    $("#searchbanner").delay(2000).animate({width: "515"}, 1500); 
}); 

這延遲的給定時間後函數的執行;在這種情況下,在運行.animate()方法之前,它將等待2000毫秒。更多信息可以在on the jQuery site找到。

編輯:作爲註釋之一,原始問題的一部分可能是當您運行您的setTimeout呼叫的時機;如果是在加載頁面期間,則給出的時間是相對於腳本運行的時間而不是頁面完成其加載時的時間。通過使用jQuery的.ready()方法,執行程序會一直等到整個文檔完全加載。

+0

+1是爲'$(文件)。準備就緒可能是問題所在。 – andlrc

+0

@NULL寫道,本能,但可能是第二個問題 - 將添加一個註釋,謝謝。 –

+0

不能正常工作 - http://testwork.ru/10003/ 頂部有文字「TEXT FOR TEST HEADER」 –

0

它採取3500秒執行

2000考慮的setTimeout 1500動畫回調函數

採取2000秒現在

setTimeout(function() { 
     $("#searchbanner").animate({width: "515"}); } 
     , 2000);​ 

採取現在1500秒

$("#searchbanner").animate({width: "515"},1500); 
0

您並未使用delay,jQuery方法,但使用了JavaScript方法setTimeout,問題可能與代碼的放置有關。如果您不等待文檔加載並試圖執行此操作,則可能會出錯。例如,未加載的元素,jQuery未加載等。

等待文件簡單地通過封裝你的jQuery中$(document).ready(function() { });

-1

加載試試這個

setTimeout(function() { 
    $("#searchbanner").animate({"width": "515"}, 1500) } 
    , 2000);​ 
+1

這似乎只是原始代碼用分號移除 –

1

你在你的代碼的兩個問題:

  • 如果DOM ISN」 t在兩秒鐘後加載超時指定選擇器無法工作,修復您可以使用jQuery(function($) {})這與相同

  • 寬度值是一個字符串,嘗試改變爲數字或像素添加到末尾:


jQuery(function($) { // <-- This makes local $ === jQuery no matter what. 
    setTimeout(function() { 
     $("#searchbanner").animate({width: 515}, 1500); 
    }, 2000);​ //       ^See changed it to a number 
}); 
+0

問題在於腳本立即運行而不必等待兩秒鐘 –