Почему «$ (). Ready (обработчик)» не рекомендуется?
ОтСайт документации jQuery API заready
All three of the following syntaxes are equivalent:
$(document).ready(handler) $().ready(handler) (this is not recommended) $(handler)После выполнения домашней работы - чтение и игра сисходный код, Я не имею понятия почему
$().ready(handler)
не рекомендуется Первый и третий способы одинаковы, третий параметр вызывает функцию ready для кэшированного объекта jQuery сdocument
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Но функция ready не взаимодействует с селектором выбранных элементов узла.ready
исходный код:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Как видите, добавление обратного вызова во внутреннюю очередь оправдано (readyList
) и не изменяет и не использует элементы в наборе. Это позволяет вам позвонитьready
функция на каждом объекте jQuery.
Подобно:
regular selector:$('a').ready(handler)
DEMO
Nonsense selector: $('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO
Undefined selector:$().ready(handler)
DEMO
Наконец-то ... на мой вопрос:Why $().ready(handler)
is not recommended?