Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2014, 00:36
Новичок на форуме
Отправить личное сообщение для spbsprut Посмотреть профиль Найти все сообщения от spbsprut
 
Регистрация: 02.04.2014
Сообщений: 3

trigger-ы Когда и зачем?
Здравствуйте.

Никогда не пользовался тригерами. Не могли бы вы объяснить зачем их вообще придумали и когда их нужно использовать. Просто я не очень понимаю. К примеру в этой статье первый пример http://jquery-docs.ru/events/trigger/#code
По нажатию на вторую кнопку срабатывает и нажатие на первую.

$("button:first").click(function () {
      update($("span:first"));
    });
    $("button:last").click(function () {
      $("button:first").trigger('click');

      update($("span:last"));
    });


А чем плох вариант?

$("button:first").click(function () {
      update($("span:first"));
    });
    $("button:last").click(function () {
      $("button:first").click();

      update($("span:last"));
    });


Или так же там написано :

Чтобы отправить первую форму на странице без использования функции submit(), сделайте:

$("form:first").trigger("submit");


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

$("form:first").submit();

Последний раз редактировалось Octane, 02.04.2014 в 00:52. Причина: http://javascript.ru/formatting
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2014, 00:50
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

trigger выполняет dispatchEvent

Добавим обработчик события
document.body.addEventListner("click", doSomthing);


Если мы хотим, чтобы событие click сработало без участия пользователя, вызовем его сами:

document.body.addEventListner("click", doSomthing);

function trigger(target, eventType)
	var event = document.createEvent("MouseEvents");
	event.initEvent(eventType, true, true);
	target.dispatchEvent(event);
}

trigger(document.body, "click");


подобные действия метод trigger делает в jQuery

конечно можно просто вызвать doSomthing
document.body.addEventListner("click", doSomthing);

doSomthing()

но тогда функция не получит первым аргументом объект события


В общем учите сначала чистый JavaScript, а потом уже фреймворки
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2014, 00:51
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от spbsprut
А чем плох сабмит формы без тригера, почему и когда я должен использовать этот самый тригер?
Это одно и то же. Событие можно навесить так:
$someCollection.on("submit", handler);
И так:
$someCollection.submit(handler);
И "дернуть" можно через .submit или .trigger - это одно и то же.
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2014, 01:33
Новичок на форуме
Отправить личное сообщение для spbsprut Посмотреть профиль Найти все сообщения от spbsprut
 
Регистрация: 02.04.2014
Сообщений: 3

Вот эта статья вроде внесла какую то ясность в мою голову
http://novice2ninja.ru/ninja-book/chapter-9/events.html

Вообщем основные директивы для создания и вызова событий являются bind/trigger соответственно. А все click mouseleave и тд обертки над ними. А сами тригеры можно использовать при создании собственных событий.(по крайне мере).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зачем Js, когда есть jQuery? Ssandr Оффтопик 249 03.11.2013 13:50
Когда писать плагин к jQuery, а когда простую функцию? kiowas jQuery 4 26.06.2013 13:05
как сделать чтобы когда убираю галочку с чекбокса то текст убралось:) ? sarik Общие вопросы Javascript 9 27.02.2013 15:03
Скрипт счетчика тормозит когда вделаю страницу активной denisOgr jQuery 1 30.10.2011 16:15
Как работает оператор new когда функция-конструктор что-то возвращает ? olek Общие вопросы Javascript 2 06.03.2011 12:17