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

В чем разница между этими функциями jQuery?

какая разница между

$(function(){

}); 

и

$(document).ready(function() { 

});
4b9b3361

Ответ 1

Ничего.

Эта функция ведет себя так же, как $(document).ready(), поскольку он должен можно использовать для переноса других $()

Вы можете увидеть это в исходный код:

rootjQuery = jQuery(document);

...

} else if ( jQuery.isFunction( selector ) ) {
    return rootjQuery.ready( selector );
}

Ответ 2

} else if (jQuery.isFunction(selector)) {
    return rootjQuery.ready(selector);
}

Из источника

Вызов $(document).ready(selector) сохраняет несколько операторов if.

Хотя jQuery делает кэширование $(document) внутренне, что может сделать $(f) быстрее.

Бенчмаркинг

Ответ 3

Оба эквивалентны, первая - сокращенная форма.

Ответ 4

$(function() {}) является короткой средой для dom ready

Функция, переданная как аргумент конструктору jQuery, привязывается к событию готовности документа.

Ответ 5

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

Тем не менее, я лично всегда использую расширенную форму $(document).ready(function(){}); по той простой причине, что совершенно очевидно, что делает код. Приблизительная идея заключается в "самодокументируемом коде". Любой, кто приходит к коду позже, сразу увидит, что код должен быть запущен в событии document ready. В короткой форме вам нужно полагаться на читателя вашего кода, понимающего смысл.

Ответ 6

Я предлагаю вам прочитать this. Как вы можете видеть

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

$(document).ready(handler)

$().ready(handler) (this is not recommended)

$(handler)

Итак, это зависит от вас и от того, что вы предпочитаете.

Ответ 7

Они практически одинаковы. Нет разницы.


Это родной путь.

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

И это сокращение для предыдущего.

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

исходный код jQuery

Ответ 8

Мы столкнулись с ситуациями, когда IE9 не запускает функции в $(function() {}); таким же образом или по времени, как $(document).ready(function() {});

Проблема подняла голову для нас специально для чтения информации из строки запроса и обработки и отображения этой информации на экране или использования ее для обработки формы. IE9 обрабатывал бы информацию, как только она была кэширована с помощью $(function(), и пользователь обновил страницу, но при первом запуске ничего не получилось. Однако, как только мы перейдем от $(function() {}) к $( document).ready(), проблема была исправлена. Мы изменили NOTHING else.

Я с нетерпением жду того дня, когда мне не нужно тестировать IE9 и ниже.

Ответ 9

Я использую $(function() {});, потому что он короче. Насколько я знаю, нет никакой разницы между двумя способами этого.