2013-09-26 4 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()' в JS документы вашего выбора – devnull69

+0

проверки этот ответ вне, 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-.delay() не является заменой встроенной функции JavaScript setTimeout, которая может быть более подходящей для определенного использования .

Демо: http://jsfiddle.net/SBrWa/

+2

'$ ('# loader'). Show(). Delay (1000) .hide (0);' будет достаточно;) +1 для отображения альтернативы. Точно так же, как внутри, DOC относительно задержки() кажется более точной. Похоже, что delay() можно отменить с помощью метода jq 1.9 .finish() –

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

Здесь 2000 относится к 2 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 
}); 
Смежные вопросы