Подтвердить что ты не робот

Есть ли разница между $(). Ready() и $(document).ready()

Я видел некоторый код, где они только это делают:

$().ready(function()
{
    ...
});

Это меньше, чем селектор документов, но это одно и то же?

4b9b3361

Ответ 1

Незначительное изменение:

$(document).ready(function() {});

Является равным:

$(function() {});

В jQuery 1.4: $().ready(function() { }); больше не работает корректно во всех случаях. Из примечаний к выпуску:

Как и в jQuery 1.4, если вы не передадите аргументы в метод jQuery(), будет возвращен пустой набор jQuery. В предыдущих версиях jQuery будет возвращен набор, содержащий документ node.

Ответ 2

У Ника и Джастина есть правильные ответы здесь, но поскольку мы по теме, я бы рекомендовал для переносимости никогда не использовать $ в глобальной области. Несколько слишком много библиотек используют его в своих целях, и вы можете столкнуться с проблемами совместимости, если вам нужно их смешивать. Вместо этого вы можете использовать необязательный первый параметр для обработчика jQuery:

jQuery(function($) {

});

Это устанавливает $ как ссылку на jQuery в этой области видимости.

Ответ 3

В соответствии с jQuery API docs все три из следующих синтаксисов эквивалентны:

  • $(document).ready(handler)
  • $().ready(handler) (но это не рекомендуется)
  • $(handler)

Таким образом, очевидно, что синтаксис будет работать, но не является рекомендуемым синтаксисом.

В соответствии с jQuery 1.4 Примечания к выпуску:

В jQuery 1.3 jQuery() возвратил набор jQuery, содержащий только документ. в jQuery 1.4 он возвращает пустой набор jQuery. Это может быть полезно для создания пустого набора и добавления элементов к нему динамически. Примечание. Метод jQuery(). Ready() по-прежнему работает в версии 1.4, но он устарел. Используйте jQuery (document).ready() или jQuery (function() {}).