Загрузка страницы jQuery
Я вижу людей, использующих все эти разные методы с помощью jQuery. Я знаю, что второй метод будет работать при загрузке страницы. Но когда начнутся 1-я и 3-я функции? Третий метод используется в плагинах, чтобы избежать конфликта? Но это будет срабатывать до загрузки страницы? Я также добавил 4-й метод. Я хотел бы знать, когда вы/не должны использовать каждую технику. И если кто-нибудь из них фальшивый, дайте мне знать!
первый
(function($) {
})(jQuery);
второй
$(document).ready(function(){
});
третий
$(function(){
}());
четвёртая
jQuery(function($) {
});
пятые
(function(){
})();
Ответы
Ответ 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
утверждение.