Каково различие между функциями начала jQuery?

Каково различие между?:

$(function(){

});

и

$(document).ready(function() { 

});

Я знаю, что они надеются на то, что компоненты загружены, но я хотел бы знать: почему они пишут друг другу различным способом?.

Сходный вопрос SO на английском: https://stackoverflow.com / questions / 2662778/what-is-the-difference-between-these-jquery-ready-functions

13
задан 23.05.2017, 15:39
3 ответа

Официально нет никакого различия:

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

Ты можешь видеть это в шрифтах:

rootjQuery = jQuery(document);

...

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

Однако, технически да есть различие, которое могло бы быть полезным согласно обстоятельствам: $(function() не выполнят, если jQuery он не был загружен правильно, в то время как $(document).ready да он это сделает

Обновление: Как упоминается в комментариях $(document).ready также он не будет работать, если jQuery он не будет нагруженным. Чтобы получать сходный эффект (но не идентичный) без jQuery возможно использовать window.onload.

Этот ответ - перевод оригинал на английском: https://stackoverflow.com / в / 2662783/4574 (последняя фраза не была в оригинале)

9
ответ дан 01.12.2019, 08:14
  • 1
    Так как мы переводим, мы переводим все... xDDDD. , Если, что есть различие, $(function(){}) менее читабельный (по крайней мере в моем мозгу) by Rosdi Kasim – Jordi Castilla 21.12.2015, 14:26
  • 2
    #191; Podr и # 237; схвати осветлять ее и #250; ltima фраза: " $(function() не выполнять и # 225; если jQuery он не был загружен правильно, в то время как $(document).ready s и # 237; har и # 225; "? Если jQuery не было загружено правильно, ни одна из двух быть должным и # 237; чтобы работать, потому что $ не быть и # 237; в определенный и быть полученным и # 237; в ошибку в обоих случаях – Alvaro Montoro♦ 05.01.2016, 14:07
  • 3
    @AlvaroMontoro Просвет, что s и # 237; я объясняю это тебе очень простой формы: met и # 237; лапа.:-) – Konamiman 05.01.2016, 14:40

Согласно документации:

jQuery (callback): Соедини функцию, которая должна быть выполненной, когда DOM закончит Ваш груз. Поведение - как $().ready() и он должен будет быть использованным, чтобы герметизировать в корпусе другие операции, которые зависят от того, что DOM загружен.

В то время как:

.ready (handler): Определи функцию, которую нужно выполнять, когда DOM полностью нагружен.

Если будет работать после загруженный DOM, Ваша функция (обычно анонимная) будет выполнена сразу.

Заключение:

Оба метода синонимичные. Использование одного или другого - вопрос, который ты предпочел. Я например он мне нравится много первый, итак, как они упоминают об этом, - короткое использование.

Рекомендация:

Рекомендуемое состоит в том, чтобы ты использовал прозвище jQuery чтобы получать поведение, желаемое всегда в твоих plugins или компонентах (не имеет значение метод, который ты используешь), примеры:

Метод 1:

jQuery(function( $ ) {
    // Tú código usando aquí el alias «$».
});

Метод 2:

jQuery( document ).ready(function( $ ) {
  // Código usando el símbolo «$» (como comúnmente) aquí.
});

Шрифты

2
ответ дан 01.12.2019, 08:14

Это tambiГ©n эквивалентное:

    $(document).on('ready',function() { 

    });

Лично я рекомендую использовать по умолчанию mГ©todo on, и для случая метода ready я рекомендую не использовать это, и в Вашей замене поддерживать порядок ее ejecuciГіn scripts/funciones, когда ты будешь знать, что ресурсы (элементы / переменные, app.js) уже существуют в настоящем контексте, и(или) выполнять сами рукописный шрифт / функция в callbacks.

0
ответ дан 01.12.2019, 08:14