Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разница событий (https://javascript.ru/forum/misc/55677-raznica-sobytijj.html)

bubanay 09.05.2015 14:59

Разница событий
 
Никак не могу понять разницу между функциями:
1. window.onload
2. $(document).ready(function () { ... });
3. $(function(){...});

Я новичок, сильно камнями не кидайтесь). Объясните как можно подробнее в чем у них принципиальная разница.

Вроде вторая и третья исполняются после загрузки страницы через jquery. Первая вроде работает просто в js, но не уверен что срабатывает после загрузки страницы.

Допустим если в эти конструкции повесить события нажатия на кнопку, скрипт подгрузится в момент нажатия на кнопку или изначально при загрузки страницы?

laimas 09.05.2015 15:27

onload - это событие после загрузки всего содержимого, включая и изображения, и прочее. А $(document).ready - возникает в момент готовности дерева DOM, то есть не ожидает загрузки изображений.
$(function(){...}); - это тоже самое, что $(document).ready(function () { ... });

bubanay 13.05.2015 13:45

А вот такие конструкции как работают:
jQuery(function($) {...})
(function($){...})(jQuery);

jQuery(function($) {...}) точно отличается от $(function(){...});

рони 13.05.2015 13:59

Цитата:

Сообщение от bubanay
А вот такая конструкция как работает и можно ли ставить ее в head?

как обыкновенная функция -- вставить можно но если ненужны элементы страницы -- выполняется сразу

bubanay 14.05.2015 14:49

Меня больше разница их интересует. Я думал это одно и то же. Вставлял в head скрипт для раскрывающего блока, в результате из

jQuery(function($) {...})
(function($){...})(jQuery);
$(function(){...});


сработала только конструкция
jQuery(function($) {...})

значит точно есть какие-то отличия.

рони 14.05.2015 15:33

bubanay,
Цитата:

Сообщение от bubanay
(function($){...})(jQuery);

DOM ещё нет -- нет элементов на странице не с чем работать -- но защищена от Joomla
Цитата:

Сообщение от bubanay
$(function(){...});

DOM есть но нет защиты от Joomla
Цитата:

Сообщение от bubanay
jQuery(function($) {...})

страница готова и пофигу что Joomla перезапишет $

Erolast 14.05.2015 15:40

Цитата:

jQuery(function($) {...}) точно отличается от $(function(){...});
$ - алиас к jQuery. $(function(){}) и jQuery(function(){}) - одно и то же, за исключением того, что второе уменьшает вероятность коллизии имен (знак доллара не только jquery в качестве сокращения использует).

Цитата:

(function($){...})(jQuery);
Создаем анонимную функцию с одним аргументом $ и сразу же ее вызываем с передачей jQuery параметром.


Часовой пояс GMT +3, время: 08:16.