2013-09-26 53 views
10

在我的jquery函数中,我有一个加载器gif图像。在我展示它之后,我想延迟一秒钟,然后继续执行其余的代码。 我该怎么做?jquery延迟执行代码

$('#loader').css('display', ''); 

    //// I want to put here a delay. 

    var myDate = new Date(); 
    myDate.setFullYear(2013,8,2); 

    var checkyear = myDate.getFullYear(); 
    var monthly =myDate.getMonth(); 
    var daily =myDate.getDate(); 

    $('#day').html(daily) ; 
    $('#month').html(months[monthly]) ; 
    $('#year').html(checkyear) ; 
+0

检查'window.setTimeout()'在你选择 – devnull69

+0

检查这个答案出来的JS文件,http://stackoverflow.com/questions/1183872/put-a-delay-in-javascript – zahirdhada

+3

请使用在下一次您发布已被问及(如答案)数十亿次的问题之前,在stackoverflow上的搜索功能 – devnull69

回答

21

设置这样的超时:

var delay = 1000; 
setTimeout(function() { 
// your code 
}, delay); 

http://jsfiddle.net/HuLTs/

+0

这在Firefox中很好用,但为什么不在Chrome中呢? –

+0

Chrome在我身上没有问题。用你的问题创建一个新主题。 –

+0

你对吧我错了...... –

4

你试过.delay

$('#loader').show(1).delay(1000).hide(1); 

的.delay()方法是最适合的jQuery排队效果 之间延迟。因为它是有限的 - 例如,它不提供一种方式来取消延迟-delay()不是替代JavaScript的本地 setTimeout函数,这可能更适合于某些使用 的情况。

演示:http://jsfiddle.net/SBrWa/

+2

'$('#loader')。show()。delay(1000).hide(0);'就够了;)+1表示替代。就像内部一样,关于delay()的DOC似乎没有更多的准确。看起来像delay()可以使用jq 1.9方法取消.finish() –

4
$(document).ready(function(){ 
    setTimeout(function(){ 
     //your code 
    }, 
    2000); 
}); 

这里20002 seconds

0

您可以使用此代码,

$('#loader').css('display', ''); 

setTimeout(function() { 
    var myDate = new Date(); 
    myDate.setFullYear(2013,8,2); 

    var checkyear = myDate.getFullYear(); 
    var monthly =myDate.getMonth(); 
    var daily =myDate.getDate(); 

    $('#day').html(daily) ; 
    $('#month').html(months[monthly]) ; 
    $('#year').html(checkyear) ; 
}, 1000); 
0

试试这个,

$(function(){ 
    $('#loader').css('display', ''); 
    setTimeout(function(){ 
     var myDate = new Date(); 
     myDate.setFullYear(2013,8,2); 
     var checkyear = myDate.getFullYear(); 
     var monthly =myDate.getMonth(); 
     var daily =myDate.getDate(); 
     $('#day').html(daily) ; 
     $('#month').html(months[monthly]) ; 
     $('#year').html(checkyear) ; 
    },1000);// 1 second delay 
});