Z tego, co wiem, nie ma różnicy. Nie jestem pewien, dlaczego jeden byłby lepszy od drugiego lub dlaczego oba zostały wymienione, ponieważ jest to mylące dla mnie.
Patrząc na http://code.jquery.com/jquery-1.9.1.js widzimy:
1915 next = function() {
jQuery.dequeue(elem, type);
};
... w metodzie jQuery.dequeue
. Nazywa się to nieco później (w linii 1936) jako fn.call(elem, next, hooks)
. Zobaczysz, że next
jest pierwszym parametrem w wywołaniu zwrotnym queue
, a w tym czasie jest to fn
.
Patrząc w przyszłość, widzimy
1983 dequeue: function(type) {
return this.each(function() {
jQuery.dequeue(this, type);
});
},
ta jest określona na jQuery.fn
, więc jest to funkcja wywoływana przez $(this).dequeue
. Jednak robi to dokładnie to samo. Jedyną różnicą jest element, który jest odrywany. W wersji fn.dequeue
pętle przechodzą przez kolekcję, ale będzie to tylko jeden element dla $(this)
.
Jeśli spojrzymy wstecz, widzimy, co elem
jest jednak:
1908 dequeue: function(elem, type) {
... hej, poczekaj sekundę .. to this
(gdy wywołana z $(this).dequeue
)! W ten sposób widać, że robią dokładnie to samo. $("some other collection").dequeue
będzie jednak działać inaczej.
Zadzwoń pod numer next()
, aby zapisać dodatkowe wywołanie .each
, więc myślę, że będzie to szybsze.
Przy okazji, nie musisz nazywać go next
w oddzwonieniu, ponieważ możesz zmieniać nazwy parametrów na dowolne.
EDIT: Na moim mini dyskusji z moim znakomitym kolegą @ FabrícioMatté, nie może być w rzeczywistości różnica w funkcjonalności pomiędzy next()
i $(this).dequeue()
, w szczególności gdy nie przy użyciu standardowego fx
kolejkę. Po utworzeniu funkcji jest ona ustawiona na wywołanie $.dequeue
z typem uzyskanym z queue
już, ale $.fn.dequeue
przyjmuje typ jako argument.Jest to prawdopodobnie jeszcze większa motywacja do trzymania się z next()
, chociaż nigdy nie widziałem, aby ktoś używał praktycznie nic poza standardową kolejką efektów.
Jak to jest pytanie [tag: optymalizacja]? – millimoose
Co to jest "next()" jest udokumentowane w [dokumentach dla '.queue()'] (http://api.jquery.com/queue/#queue2): "Od wersji jQuery 1.4 funkcja, która jest Wywoływana funkcja przekazuje następną funkcję jako pierwszy.Po wywołaniu, automatycznie usuwa kolejkę kolejnych elementów i powoduje, że kolejka się porusza. " – millimoose
Dodałem optymalizację, ponieważ stwierdza ona, że optymalizacja jest udoskonaleniem metody lub projektu. Szukam najlepszej metody użycia tych funkcji, dlatego też szukam "optymalizacji" mojego kodu ... Sprawia, że w 100% mam sens! – Epik