2015-05-28 169 views
1

我沒有'超時的經驗。我想要點擊兩步:如何延遲發射功能

close_layer(); 
$.fn.fullpage.moveTo(8); 

我首先希望在這兩個操作之間延遲例如1000。我嘗試使用delaysetTimeout,但似乎我不知道如何正確使用這些。

我曾嘗試:

close_layer().delay(1000); 
$.fn.fullpage.moveTo(8); 

//or 

close_layer(); 
setTimeout(1000); 
$.fn.fullpage.moveTo(8); 

我沒有使用任何的延遲問題,而我試圖動畫的東西。這對我來說很刺激,就是我使用的插件生成的$.fn.fullpage$開頭的意思是什麼?它是否替代$('this')之類的東西,還是global函數的標記?

+0

'$''是如此jQuery'是'jQuery的嘗試。 fn.fullpage.moveTo()'相當於'Const.prototype.method = fn;' – Jai

回答

1
調用回調函數一樣

setTimeout是一個同步功能。你應該這樣使用它:

setTimeout(function(){ 
    $.fn.fullpage.moveTo(8); 
}, 1000); 

如果你想確保close_layer();函數結束。你應該是一個回調到這個功能,後來把它叫做:

function close_layer(callback){ 
    ... 
    callback(); 
} 

function callback(){ 
    $.fn.fullpage.moveTo(8); 
} 

...或者你甚至可以使用Promise

close_layer().then(function(){ 
    $.fn.fullpage.moveTo(8) 
}); 
0

呼叫建立超時結束

setTimeout(function() { 
       $.fn.fullpage.moveTo(8) 
      },1000); 
+0

你怎麼知道'close_layer'函數完成? –

+0

@JqueryKing是具有任何動畫或設置超時功能的關閉圖層。或者你可以在close層的結尾調用這個函數 – Balachandran

0

後的功能嘗試在您close_layer回調函數

close_layer(callback); 

確保你到底

callback(); 

function callback(){ 
    setTimeout(function() { 
    $.fn.fullpage.moveTo(8); 
    },1000); 
}