Пауза в цепочке

Дата публикации:Апрель 7, 2011

В jQuery 1.4 всегда можно легко приостановить выполнение цепочки с помощью удобной функции delay(). Давайте поместим трехсекундную паузу в нашу цепочку:

...
jQuery('.post:first')
.hide()
.slideDown(5000, 'linear')
.delay(3000)
.fadeTo('slow', .5);
...

Если пауза не работает, значит вы используете jQuery более младшей версии.

Поделиться

9 комментариев

  1. leshak says:

    Помогите разобраться с delay

    вместо того, что бы выводить на экран постепенно точечки….

    после паузы они выдаются сразу ВСЕ — но почему???

    тест delay

    body {

    font:15px/0.9 arial,helvetica,clean,sans-serif;

    }

    #z{

    background-color: #eeeeee;

    }

    .z {

    color: #444444;

    background-color: #dddddd;

    height: 14px;

    width: 88px;

    margin: 7px;

    cursor: pointer;

    border: solid 1px #555555;

    padding-left: 22px; padding-right: 11px;

    padding-top: 3px; padding-bottom: 3px;

    -moz-border-radius: 15px;

    -webkit-border-radius: 15px;

    }

    test dejay

    $('#test').live('click', function(){

    $('body').append(' Test:');

    for(var i=0; i<2222; i++ ){

    $('body').delay(1111).append(' .');

    }

    });

  2. Architect Of Ruin says:

    Возможно, пауза слишком маленькая.

  3. leshak says:

    а так пауза уже Большая…

    Но не работает Вообще!

    for(var i=0; i<5; i++ ){

    $('body').delay(111111).append(' .'+i);

    }

  4. Architect Of Ruin says:

    Попробуйте воспользоваться родной Javascript функцией setTimeout. delay() используется для задержки между последовательными эффектами. А если вам надо задержать выполнение функции, то тут только setTimeout.

  5. leshak says:

    я уже пробовал — это еще смешнее

    $('#test').live('click', function(){

    $('body').append(' Test:');

    for(var i=0; i<5; i++ ){

    window.setTimeout(function(){ $('body').append(' .'+i); }, 1000)

    //$('body').delay(1111).append(' .'+i);

    }

    });

    // Test: .5 .5 .5 .5 .5

  6. Architect Of Ruin says:

    Если верить этой статье:

    http://www.vertstudios.com/blog/common-problems-j

    то "JavaScript does not pause between iterations", т.е. Javascript не выполняет паузу между итерациями. Там дается объяснение, почему пауза может не работать в цикле. Посмотрите, пожалуйста.

  7. leshak says:

    при моем незнании английского — пришлось понимать это самому..

    теперь вычитываю чужие скрипты где есть хоть какой-то намек на реализацию паузы

  8. leshak says:

    вот Это Работает! :)

    var action_count = 5 ;

    function delayed_loop(pause){

    action_count—;

    $('body').append(' .'+action_count+' ('+pause+')');

    if (action_count>0) {

    setTimeout(function(){delayed_loop(pause)},pause);

    };

    }

  9. Architect Of Ruin says:

    С delay просто много проблем, она может то работать, то не работать, и все зависит от случая, как я понял, пробежавшись по английской документации. За пример вам плюсик в карму)

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.