2013-09-26 7 views
10

In meiner jquery Funktion habe ich ein Loader gif Bild. Nachdem ich es gezeigt habe, möchte ich eine Verzögerung für eine Sekunde setzen und dann fortfahren, den Rest des Codes auszuführen. Wie kann ich das tun?jquery verzögern die Ausführung von Code

$('#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

Check 'window.setTimeout()' in JS docs Ihrer Wahl – devnull69

+0

Check diese Antwort aus, http://stackoverflow.com/questions/1183872/put-a-delay-in-javascript – zahirdhada

+3

Bitte verwenden die Suchfunktion auf stackoverflow das nächste Mal, bevor Sie eine Frage stellen, die wie eine zigmillionen Mal gefragt (und beantwortet) wurde – devnull69

Antwort

21

ein Timeout wie folgt einstellen:

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

Beispiel http://jsfiddle.net/HuLTs/

+0

Das funktioniert gut in Firefox, aber warum nicht in Chrome? –

+0

Kein Problem bei Chrome für mich. Erstellen Sie ein neues Thema mit Ihrer Frage. –

+0

Sie haben Recht Ich habe mich geirrt ... –

4

Sie .delay versucht haben?

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

Die .delay() Methode ist am besten zwischen der Warteschlange jQuery Effekte zur Verzögerung. Weil es begrenzt ist - es bietet beispielsweise keine Möglichkeit die Verzögerung abzubrechen. .delay() ist kein Ersatz für die native JavaScript-Funktion setTimeout von JavaScript, die für bestimmte Fälle geeigneter sein könnte.

Demo: http://jsfiddle.net/SBrWa/

+2

'$ ('# loader'). Show(). Delay (1000) .hide (0);' wäre genug;) +1 für die alternative anzeigen. Genau wie ein Inside scheint DOC bezüglich delay() nicht mehr genau zu sein. Es sieht so aus, als ob eine delay() mit jq 1.9 method .finish() abgebrochen werden kann –

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

Hier 2000 bezieht sich auf 2 seconds

0

Sie diesen Code verwenden können,

$('#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

Try this,

$(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 
}); 
Verwandte Themen