Método queue() de dados jQuery
Exemplo
Exibir o comprimento da fila:
function showIt() { var n = div.queue("fx"); $("span").text( n.length ); setTimeout(showIt, 100); }
Definição e uso
O método queue() mostra ou opera na fila de funções executadas nos elementos correspondentes.
Sintaxe
.queue(queueName)
Parâmetros | Descrição |
---|---|
queueName | Opcional. Valor de string que contém o nome da seqüência. O padrão é fx, a seqüência de efeitos padrão. |
Operar na fila
O método queue() opera na fila de funções executadas nos elementos correspondentes.
Sintaxe
.queue(queueName,newQueue)
Parâmetros | Descrição |
---|---|
queueName | Opcional. Valor de string que contém o nome da seqüência. O padrão é fx, a seqüência de efeitos padrão. |
Explicação detalhada
Cada elemento pode ter uma a várias filas de funções adicionadas pelo jQuery. Na maioria dos aplicativos, é usado apenas uma fila (chamada fx). A fila chama seqüências de ações no elemento de forma assíncrona, sem interromper a execução do programa. Exemplos típicos incluem a chamada de vários métodos de animação no elemento. Por exemplo:
$('#foo').slideUp().fadeIn();
Quando esta instrução for executada, o elemento começará imediatamente sua animação de deslizar, mas a transição de desvanecimento será colocada na fila fx e será chamada apenas após a conclusão da transição de deslizar.
O método .queue() nos permite operar diretamente na fila de funções. Chamar o método .queue() com um callback é especialmente útil; ele permite que coloquemos uma nova função no final da fila.
Esta característica é semelhante às funções de callback fornecidas pelos métodos de animação, mas não é necessário definir um callback durante a execução da animação.
$('#foo').slideUp(); $('#foo').queue(function() { alert('Animação completa.'); $("this").dequeue(); });;
É equivalente a:
$('#foo').slideUp(function() { alert('Animação completa.'); );
Atenção, quando adicionamos funções através de .queue(), devemos garantir que chamamos .dequeue() no final, para que a próxima função da fila possa ser executada.
Exemplo 1
Realize operações de fila em funções personalizadas:
$("document.body").click(function () { $("div").show("slow"); $("div").animate({left:'+=200'},2000); $("div").queue(function () { $("this").addClass("newcolor"); $("this").dequeue(); });; $("div").animate({left:'-=200'},500); $("div").queue(function () { $("this").removeClass("newcolor"); $("this").dequeue(); });; $("div").slideUp(); );
Exemplo 2
Defina a matriz da fila para remover a fila:
$("#start").click(function () { $("div").show("slow"); $("div").animate({left:'+=200'},5000); $("div").queue(function () { $("this").addClass("newcolor"); $("this").dequeue(); ); $("div").animate({left:'-=200'},1500); $("div").queue(function () { $("this").removeClass("newcolor"); $("this").dequeue(); ); $("div").slideUp(); ); $("#stop").click(function () { $("div").queue("fx", []); $("div").stop(); );