dequeue()
28
посл. ред.
25.10.2016
Метод dequeue()
используется для запуска следующей функции в очереди.
По умолчанию в jQuery используется стандартная очередь
. При добавлении в неё первой функции автоматически происходит её запуск. Если создаётся другая очередь (не fx
), тогда запуск первой функции в ней можно осуществить только с помощью метода fx
dequeue()
.
Стандартные анимационные методы в jQuery (animate()
, hide()
, show()
и т.д.) по окончании работы автоматически запускают следующую функцию в очереди. Если же в очередь вставлена пользовательская функция, тогда для запуска следующей функции необходимо использовать метод dequeue()
.
Варианты использования
jQ_object.dequeue([имя_очереди]) => jQuery
- Удаляет из указаной очереди следующую функцию и запускает её. Если имя очереди не указано, тогда используется стандартная очередь
. Метод выполняется для каждого элемента текущей выборки.fx
Примеры
<html> <head> <title>Анимация в jQuery</title> <script type="text/javascript" src="js/jquery.js"></script> <style> div { width: 50px; height: 50px; position: relative; background: coral; } .red {background: red;} </style> </head> <body> <button>Кнопка</button> <div></div> </body> </html> <script> $('button').on('click', function() { $('div') .animate({left: '+=150'}, 'slow') .queue(function() { $(this) .toggleClass('red') .dequeue(); }) .animate({left: '-=150'}, 'slow'); }); </script>
<html> <head> <title>Анимация в jQuery</title> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <button>Запустить 1 раз</button> <div style="width: 100px; height: 100px; position: relative; background: coral"></div> </body> </html> <script> $('div') .animate({left: '+=200', width: 'hide', height: 'hide'}, {delay: 'slow', queue: 'once'}) .animate({left: '-=200', width: 'show', height: 'show'}, {delay: 'slow', queue: 'once'}); /* Для элемента DIV создана очередь из двух анимаций */ $('button').on('click', function() { /* Запуск анимации для элемента DIV */ $('div').dequeue('once'); }); </script>