2015-05-28 108 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); 
}