Z witryny z dokumentacją jQuery API dlaready
Wszystkie trzy z następujących składni są równoważne:
- $ (document) .ready (handler)
- $ (). ready (handler) (nie jest to zalecane)
- $ (handler)
Po odrabianiu lekcji - czytaniu i zabawie z kodem źródłowym 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 zbuforowanym obiekcie jQuery z document
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Ale gotowa funkcja nie ma interakcji z selektorem wybranych elementów węzła, ready
Kod źródłowy:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Jak widać, po prostu dodaje wywołanie zwrotne do wewnętrznej kolejki ( readyList
) i nie zmienia ani nie używa elementów w zestawie. Pozwala to wywołać ready
funkcję na każdym obiekcie jQuery.
Lubić:
- zwykły selektor:
$('a').ready(handler)
DEMO - Selektor bzdur :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - Niezdefiniowany selektor:
$().ready(handler)
DEMO
Wreszcie ... na moje pytanie: dlaczego $().ready(handler)
nie jest zalecane?