www.jQueryBook.ru - jQuery документация

 

 

 

 



  • Категории: Effects › Custom ,  Data ,  Utilities

    .dequeue()

    Делает возможным исполнение следующей функции в очереди, прерванной при использовании метода .queue().

Синтаксис и описание:

  • Добавлено в jQuery 1.2.dequeue( [ queueName ] )

  • Команда .dequeue() удаляет из очереди элемента следующую по счёту функцию и сразу выполняет её. Используется вместе с .queue(fn) — пользовательская функция в очереди сама отвечает за то, чтобы очередь продолжила движение дальше.

Возвращаемое значение: (объект) Набор jQuery.

Параметры:

  • queueName – (строка) Необязательный параметр. Имя очереди. По умолчанию — "fx".

  1. Примечание:

    Если добавить в очередь функцию через .queue(fn), она не выполнится автоматически до конца и не передаст управление дальше — она обязана сама явно продвинуть очередь. Старый способ — вызвать внутри неё $(this).dequeue().

  2. Примечание:

    Современный и предпочтительный путь (доступен с jQuery 1.4): функция, переданная в .queue(fn), сама получает первым аргументом функцию next — вызов next() делает то же самое, что и $(this).dequeue(), но не требует замыкания на текущий элемент и читается нагляднее:

    $('#box').queue(function(next) {
      $(this).addClass('processed');
      next(); // эквивалент $(this).dequeue()
    });
  3. В jQuery 3.x и 4.0:

    Метод не деприкейчен. Как часть системы очередей — недоступен в slim-сборке: эффектов там нет с jQuery 3.0, а с 4.0 в slim дополнительно нет самих модулей deferred/queue, так что .dequeue() для пользовательских очередей в slim 4.0 тоже работать не будет.

Примеры:

  1. Пользовательский шаг в очереди со старым способом продолжения через .dequeue().

    $('#box').queue(function() {
      $(this).toggleClass('red');
      $(this).dequeue(); // без этого вызова очередь остановится здесь
    });
  2. Тот же результат современным способом — через аргумент next.

    $('#box').queue(function(next) {
      $(this).toggleClass('red');
      next();
    });
  3. Именованная очередь: следующий шаг запускается вручную через .dequeue('steps').

    $('#wizard').queue('steps', function() {
      console.log('Шаг 1 выполнен, ждём кнопку "Далее"');
    });
    
    $('#next-btn').on('click', function() {
      $('#wizard').dequeue('steps');
    });

[ наверх ]









 




Справочник по jQuery JavaScript API на русском языке