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();
|
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, а потом уже фреймворки |
Цитата:
$someCollection.on("submit", handler);
И так:$someCollection.submit(handler);И "дернуть" можно через .submit или .trigger - это одно и то же. |
Вот эта статья вроде внесла какую то ясность в мою голову
http://novice2ninja.ru/ninja-book/chapter-9/events.html Вообщем основные директивы для создания и вызова событий являются bind/trigger соответственно. А все click mouseleave и тд обертки над ними. А сами тригеры можно использовать при создании собственных событий.(по крайне мере). |
| Часовой пояс GMT +3, время: 08:07. |