Entrambe le funzioni jQuery.fn.dequeue
e next
sono semplicemente wrapper per jQuery.dequeue
, passando lo stesso insieme di argomenti in entrambi gli esempi.
(Fino ad oggi, come di jQuery 1.9.1)
Per i parametri della funzione prossimi: type
è un parametro opzionale che indica la coda, il default è fx
che è coda di animazione di default di jQuery. element
è un riferimento di elemento DOM.
$.fn.dequeue
:
dequeue: function(type) {
return this.each(function() {
jQuery.dequeue(this, type);
});
}
$().dequeue
chiede semplicemente $.dequeue
per ciascun elemento contenuto all'interno dell'oggetto jQuery.
Il tuo caso d'uso $(this).dequeue()
chiamerà $.dequeue
una singola volta con l'elemento di riferimento iniziale di this
.
Analogamente, next
passerà un singolo elemento di riferimento per $.dequeue
, che è l'elemento corrente avente la sua coda rimosse dalla coda:
next = function() {
jQuery.dequeue(elem, type);
};
In altre parole, questi sono essenzialmente le stesse. next
è un po 'più diretto in quanto non ha un wrapper iterativo, quindi next()
dovrebbe essere alcuni microsecondi più veloce di $.fn.dequeue()
.
La differenza principale è che è possibile chiamare .dequeue()
su più elementi e verrà deselezionata ciascuna di esse, mentre next()
è associata direttamente all'elemento con la coda rimossa dalla coda.
Per casi di utilizzo in cui è presente $(this).dequeue()
all'interno della richiamata, questo è irrilevante. $.fn.dequeue
è utile quando si inizia a dequeue uno o più elementi. $(this).dequeue()
ha un risultato equivalente a next()
, ma in questo caso quest'ultimo fornisce un guadagno di microsecondi.
Come notato da @Explosion Pillole nei commenti, v'è ancora una particolarità più quando si tratta di non fx
code:
$(this).dequeue()
senza l'argomento type
sarà annullare l'accodamento coda di default (fx
) quindi le code non fx
richiedono il nome da passare come parametro a .dequeue()
, mentre .next()
cerca la sua catena dell'ambito di creazione e recupera automaticamente lo type
all'interno dell'ambito $.dequeue()
che ha creato t he oggetto funzione next
.
Pertanto, quando si utilizza una coda non fx
, si dovrà passare il nome della coda di $().dequeue(queueIdentifier)
, mentre .next()
sarà sempre di rimozione in coda che il callback appartiene.
Come si presenta una domanda [tag: ottimizzazione]? – millimoose
Cosa 'next()' fa è documentato bene in [i documenti per '.queue()'] (http://api.jquery.com/queue/#queue2): "A partire da jQuery 1.4, la funzione che è chiamato viene passata un'altra funzione come primo argomento. Quando viene chiamato, questo automaticamente rimuove dalla coda l'elemento successivo e mantiene la coda in movimento. " – millimoose
Ho aggiunto Ottimizzazione perché, afferma che l'ottimizzazione è l'atto di migliorare un metodo o un progetto. Sto cercando il metodo migliore per l'uso di queste funzioni quindi, quindi, sto cercando di "ottimizzare" il mio codice ... Ha un senso al 100% per me! – Epik