Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.05.2015, 14:59
Интересующийся
Отправить личное сообщение для bubanay Посмотреть профиль Найти все сообщения от bubanay
 
Регистрация: 20.12.2013
Сообщений: 10

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

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

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

Допустим если в эти конструкции повесить события нажатия на кнопку, скрипт подгрузится в момент нажатия на кнопку или изначально при загрузки страницы?
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2015, 15:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

onload - это событие после загрузки всего содержимого, включая и изображения, и прочее. А $(document).ready - возникает в момент готовности дерева DOM, то есть не ожидает загрузки изображений.
$(function(){...}); - это тоже самое, что $(document).ready(function () { ... });
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2015, 13:45
Интересующийся
Отправить личное сообщение для bubanay Посмотреть профиль Найти все сообщения от bubanay
 
Регистрация: 20.12.2013
Сообщений: 10

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

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

Последний раз редактировалось bubanay, 13.05.2015 в 16:46.
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2015, 13:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от bubanay
А вот такая конструкция как работает и можно ли ставить ее в head?
как обыкновенная функция -- вставить можно но если ненужны элементы страницы -- выполняется сразу
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2015, 14:49
Интересующийся
Отправить личное сообщение для bubanay Посмотреть профиль Найти все сообщения от bubanay
 
Регистрация: 20.12.2013
Сообщений: 10

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

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


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

значит точно есть какие-то отличия.
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2015, 15:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

bubanay,
Сообщение от bubanay
(function($){...})(jQuery);
DOM ещё нет -- нет элементов на странице не с чем работать -- но защищена от Joomla
Сообщение от bubanay
$(function(){...});
DOM есть но нет защиты от Joomla
Сообщение от bubanay
jQuery(function($) {...})
страница готова и пофигу что Joomla перезапишет $

Последний раз редактировалось рони, 14.05.2015 в 15:35.
Ответить с цитированием
  #7 (permalink)  
Старый 14.05.2015, 15:40
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клонирование обработчиков событий NapalmRain Events/DOM/Window 9 14.11.2014 15:30
Вопрос по обработке событий формы lexaaleynik Элементы интерфейса 2 20.10.2014 23:22
Скобки после имени функции. В чем разница, если они есть и если их нет? jsuse Общие вопросы Javascript 2 19.11.2011 16:11
Переопределение событий lispik jQuery 4 13.01.2011 12:30
Скопировать обработчики событий с одного элемента на другой. Jurasmi Events/DOM/Window 3 10.11.2010 19:03