Dlaczego „$ (). Ready (handler)” nie jest zalecane?
OdStrona docs interfejsu API jQuery dlaready
Wszystkie trzy następujące składnie są równoważne:
$ (dokument) .ready (handler)$ (). ready (handler) (nie jest to zalecane)$ (handler)Po odrabianiu lekcji - czytanie i zabawa zkod źródłowy, Nie mam pojęcia dlaczego
$().ready(handler)
nie jest zalecane. Pierwszy i trzeci sposób są dokładnie takie same, trzecia opcja wywołuje funkcję ready na buforowanym obiekcie jQuery za pomocądocument
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Ale funkcja gotowości nie ma interakcji z selektorem wybranych elementów węzła, Theready
kod źródłowy:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Jak widać, wystarczy dodać wywołanie zwrotne do wewnętrznej kolejki (readyList
) i nie zmienia ani nie używa elementów w zestawie. Dzięki temu możesz zadzwonić doready
funkcja na każdym obiekcie jQuery.
Lubić:
regularny selektor:$('a').ready(handler)
PRÓBNYNonsens selektor:$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
PRÓBNYNiezdefiniowany selektor:$().ready(handler)
PRÓBNYWreszcie ... do mojego pytania:Czemu$().ready(handler)
nie jest zalecane?