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

Ярлыки для метода jQuery ready()

Я видел несколько ярлыков для метода ready() и хотел бы знать, что на самом деле происходит первым, потому что мои результаты теста путают меня.

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

$(window).load(function(){
    alert("window ready");
});

(function($){
    alert("self invoke");
})(jQuery);

Здесь сначала вызывается self invoke, затем документ, затем окно. Является ли метод self invoke методом ready()?

4b9b3361

Ответ 1

Третий вариант не является ярлыком для .ready() (или действительно связанного с jQuery), self invoke запускает немедленно (как только он появляется в коде), это, вероятно, ярлык, который вы думая хотя:

$(function(){
  alert("I'm a ready shortcut");
});

Передача функции в $(func) является ярлыком для $(document).ready(func);. Версия no-conflict будет выглядеть следующим образом:

jQuery(function($) {
  //$ is jQuery
});

Ответ 2

Nick Craver прав в том, что он говорит, но я думаю, что стоит отметить, что в этом последнем примере он вообще ничего не делает с jquery. jQuery передается как параметр анонимной функции, но функция ничего не делает с ней.

Последний пример эквивалентен:

(function(){
    alert("self invoke");
})();

И это явно сразу вызывает анонимную функцию, как только эта строка кода ударяется и, таким образом, делает предупреждение. Это вовсе не вызывает jQuery, поэтому Ник прав, когда говорит, что он не является готовым() методом.

Ответ 3

В этой статье есть хорошее объяснение того, как два первых отличаются друг от друга:

$(document).ready vs. $(window).load

jQuery предлагает два мощных метода для выполнения кода и присоединения события обработчиков: $(document).ready и $(window).load. Документ готов событие выполняется уже при загрузке HTML-документа и DOM готово, даже если все графики еще не загружены. Если ты хочешь подключите свои события к определенным элементам до загрузки окна, затем $(document).ready - правильное место.

$(document).ready(function() {
  // executes when HTML-Document is loaded and DOM is ready
  alert("document is ready");
});

Событие загрузки окна выполняется бит позже, когда полная страница полностью загружен, включая все кадры, объекты и изображения. Следовательно функции, которые относятся к изображениям или другому содержимому страницы в событии загрузки для окна или самого тега содержимого.

$(window).load(function() {
  // executes when complete page is fully loaded, 
  // including all frames, objects and images
  alert("window is loaded");
});