Просмотр полной версии : Разница событий
Никак не могу понять разницу между функциями:
1. window.onload
2. $(document).ready(function () { ... });
3. $(function(){...});
Я новичок, сильно камнями не кидайтесь). Объясните как можно подробнее в чем у них принципиальная разница.
Вроде вторая и третья исполняются после загрузки страницы через jquery. Первая вроде работает просто в js, но не уверен что срабатывает после загрузки страницы.
Допустим если в эти конструкции повесить события нажатия на кнопку, скрипт подгрузится в момент нажатия на кнопку или изначально при загрузки страницы?
onload - это событие после загрузки всего содержимого, включая и изображения, и прочее. А $(document).ready - возникает в момент готовности дерева DOM, то есть не ожидает загрузки изображений.
$(function(){...}); - это тоже самое, что $(document).ready(function () { ... });
А вот такие конструкции как работают:
jQuery(function($) {...})
(function($){...})(jQuery);
jQuery(function($) {...}) точно отличается от $(function(){...});
А вот такая конструкция как работает и можно ли ставить ее в head?
как обыкновенная функция -- вставить можно но если ненужны элементы страницы -- выполняется сразу
Меня больше разница их интересует. Я думал это одно и то же. Вставлял в head скрипт для раскрывающего блока, в результате из
jQuery(function($) {...})
(function($){...})(jQuery);
$(function(){...});
сработала только конструкция
jQuery(function($) {...})
значит точно есть какие-то отличия.
bubanay,
(function($){...})(jQuery);
DOM ещё нет -- нет элементов на странице не с чем работать -- но защищена от Joomla
$(function(){...});
DOM есть но нет защиты от Joomla
jQuery(function($) {...})
страница готова и пофигу что Joomla перезапишет $
jQuery(function($) {...}) точно отличается от $(function(){...});
$ - алиас к jQuery. $(function(){}) и jQuery(function(){}) - одно и то же, за исключением того, что второе уменьшает вероятность коллизии имен (знак доллара не только jquery в качестве сокращения использует).
(function($){...})(jQuery);
Создаем анонимную функцию с одним аргументом $ и сразу же ее вызываем с передачей jQuery параметром.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot