в чому різниця між
$(function(){
});
і
$(document).ready(function() {
});
в чому різниця між
$(function(){
});
і
$(document).ready(function() {
});
Відповіді:
Ця функція поводиться так само, як $ (document) .ready (), оскільки вона повинна використовуватися для обтікання інших $ ()
Ви можете побачити це у вихідному коді :
rootjQuery = jQuery(document);
...
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
$(function() {})синтаксис; інші синтаксиси все ще працюють, але застаріли. Дивіться api.jquery.com/ready
(document).readyфункції, а також, async правильно завантажив функціональну змінну. Без, завантажуються лише початкові значення змінної, ніколи не даючи нових значень асинхронізації. Схоже, це впливає на час, принаймні наopera
$(d).ready(f)проти$(f)
var d = document;зверху або покласти всередину (function(d) {і })(document);. : P
d = document, w = window
Обидва вони рівнозначні, перша - це скорочена форма.
$ (function () {}) - це короткий шлях до готового дому
Функція, передана як аргумент конструктору jQuery, прив'язана до події готовності до документа.
Пропоную вам прочитати це . Як ти бачиш
Усі три наступні синтаксиси еквівалентні:
$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)
Тож це залежить від вас і від того, що вам більше подобається.
$().ready()не працюватиме в jQuery 1.4+. $()повертає порожній вибір, а не документ, за цих обставин.
Ці два рівнозначні: використовуйте будь-яку форму, яка вам подобається.
Тим не менш, я особисто завжди використовую розширену форму $(document).ready(function(){});з тієї простої причини, що цілком очевидно, що робить код. Приблизна ідея полягає в "самодокументування коду". Будь-хто, хто прийде до коду пізніше, відразу побачить, що код буде запущений на події document' ready. За допомогою короткої форми ви повинні покладатися на читача вашого коду, який розуміє значення.
Ми стикалися з ситуаціями, коли IE9 не запускає функції в межах $ (function () {}); таким же чином або часом, як $ (document) .ready (function () {});
Випуск підняв нам голову, особливо зчитуючи інформацію із рядка запиту, обробляючи та відображаючи цю інформацію на екрані або використовуючи її для обробки форми. IE9 обробляв би інформацію, як тільки вона була кешована за допомогою $ (function (), і користувач оновив сторінку. Але при першому запуску нічого не працювало правильно. Однак, як тільки ми перейшли з $ (function () {}); на $ ( документ) .ready (), проблема була виправлена. Ми НІЧОГО не змінили.
Я з нетерпінням чекаю дня, коли мені не доведеться тестувати на IE9 і нижче.
opera . Я підтримав вашу відповідь, тому що у мене була така сама проблема. (використовуючи jquery 3.5)
Вони фактично однакові. Без різниці.
Це рідний шлях.
$(document).ready(function() {
// code
});
І це скорочення для попереднього.
$(function() {
// code
});
TypeError: 'undefined' is not a functionіноді призводити до помилок.
$(document), ви, мабуть, маєте на увазі $скорочення для jQuery.
Я використовую, $(function() {});тому що він коротший. Наскільки мені відомо, немає різниці між двома способами це зробити.