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

Загрузка страницы jQuery

Я вижу людей, использующих все эти разные методы с помощью jQuery. Я знаю, что второй метод будет работать при загрузке страницы. Но когда начнутся 1-я и 3-я функции? Третий метод используется в плагинах, чтобы избежать конфликта? Но это будет срабатывать до загрузки страницы? Я также добавил 4-й метод. Я хотел бы знать, когда вы/не должны использовать каждую технику. И если кто-нибудь из них фальшивый, дайте мне знать!

первый

(function($) {

})(jQuery);

второй

$(document).ready(function(){

});

третий

$(function(){

}());

четвёртая

jQuery(function($) { 

}); 

пятые

(function(){

})();
4b9b3361

Ответ 1

Обновить. Он изменил список вызовов в вопросе, поэтому я обновляюсь для соответствия.

Во-первых, это взломать, чтобы избежать конфликтов с другими библиотеками, которые могут присваивать $. Это не обработчик ready. Второй и третий являются обработчиками событий ready.

От ссылка API jQuery:

Все три следующих синтаксиса эквивалентны:

  • $(документ).ready(обработчик)
  • $(). ready (обработчик) (это не рекомендуется)
  • $(обработчик)

Итак, хотя эти три делают то же самое, избегайте второго.

В jQuery 1.3 значение $() равно $(document). Это больше не относится к версии 1.4.

Четвертый выглядит как синтаксическая ошибка для меня. Он по существу назначает новый готовый обработчик, но он передает функцию с аргументом $. Поскольку это обработчик событий, jQuery будет передавать информацию о событии в первом аргументе. Обычно вам не требуется $ представлять информацию о событии.

Пятый определяет новую функцию, а затем вызывает ее немедленно, передавая никакие аргументы. Итак:

(function(){
    alert("Hi!");
})();

Означает то же самое:

alert("Hi!");

Ответ 2

1st - назначает $to jQuery для использования только внутри скобок (без конфликтной версии) 2-я версия normaln и 3-я стенография:)

подробнее: http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Overriding_the_.24-function

Изменить: О да, стенография:

$(function() {
  // your code
});

(без скобок скобок функции())

Изменить. После более длительного чтения моей собственной ссылки кажется, что первая может только обернуть часть кода, где символ $ назначен jQuery, но вам все равно придется использовать $(document).ready()

Изменить. Что касается обновленного списка: 5-й тип: проверьте другой ответ, я не знал об этом типе.

jQuery(function($){

});

Однако четвертый используется для: 1. присоединить $ к jQuery, временно перегружать (внутри скобок) любую фреймворк, которая имеет $ сокращенное использование globaly (т.е. прототип) и ALSO document.ready утверждение.