Поиск по этому блогу

вторник, 5 июня 2012 г.

Почему лучше не использовать jQuery конструкцию $().ready(handler) в версии библиотеки выше 1.4

В официальной документации по библиотеке jQuery написано, что все три нижеперечисленные конструкции эквивалентны:

$(document).ready(handler)
    $().ready(handler) (this is not recommended)
    $(handler)
Но вот во второй строчке есть приписка "this is not recommended". Стало интересно почему же?
Оказалось, хитрость закопана в истории версий jQuery: В версиях до 1.4 конструкция $() была ссылкой на конструкцию $(document). Поэтому, данный код воспринимался нормально.
Но масса людей начала делать столь безумные вещи как например: $().mouseover() А для того, чтобы получить пустой объект jQuery приходилось делать следующую манипуляцию: $([]).

Поэтому начиная с версии 1.4 конструкция $() вовзращает пустой объект jQuery. Но в версии 1.4 $().ready(fn) оставлена для совместимости. Лучшей практикой по мнению разработчиков библиотеки является использование конструкции: $(document).ready(fn)

Комментариев нет:

Отправить комментарий