.trigger() — принудительный вызов события

jquery trigger

.trigger() — вызывает событие у выбранных элементов, что приводит к запуску обработчиков этого события.

Метод имеет два варианта использования.

  • eventType — тип вызываемого события JavaScript, например click или submit;
  • extraParameters — массив дополнительных данных, передаваемых в обработчик.

  • event — объект jQuery.Even;
  • extraParameters — массив дополнительных данных, передаваемых в обработчик.

Любые обработчики событий прикреплённые методом .on() или одним из его сокращений, запускаются, когда происходит соответствующее событие. Однако их можно запускать вручную используя метод .trigger(). Вызов метода .trigger() выполняет обработчики в том порядке, в котором они были бы выполнены, если бы их вызывал пользователь:

Начиная с jQuery 1.3 все инициированные события немедленно всплывают по структуре DOM документа. К примеру, если вы инициируете событие для параграфа этот элемент будет инициирован первым, затем его родительский элемент, и его родительский элемент, и так далее по документу. Событие объект будет иметь .target свойство подобное оригинальному инициированному элементу.

Вы можете предотвратить всплывание, вызвав функцию stopPropagation() или вернув false с помощью функции callback. Событие объект является конструктором, поэтому вы можете создавать собственные события объекты. Полный лист свойств, доступных для события объекта (перехватываемых инициированным обработчиком) ищите в разделе «События jQuery».

Если вам необходимо только вызвать обработчики событий, без выполнения самого события, воспользуйтесь методом .triggerHandler().

Когда мы создаем собственное событие и его инициализируем методом .on(), второй аргумент может быть очень полезен. К примеру, представьте, что мы привязали обработчик к пользовательскому событию custom, а не к встроенному событию .click(), как мы это делали выше:

Объект события всегда передается в качестве первого параметра. Также вызову .trigger () может быть передан массив аргументов. Начиная с jQuery 1.6.2, можно передать просто строку или числовой аргумент, без обертывания в массив.

Отметим разницу между дополнительными данными, передаваемыми при установке обработчика событий (параметр eventData) и данными передаваемыми при вызове события методом trigger() (параметр extraParameters). Во-первых, есть смысловое отличие — eventData задается один раз для каждого обработчика, поэтому, при каждом вызове, он будет получать одно и то же значение. Параметр extraParameters задается для каждого отдельного вызова заново, и поэтому значения могут быть разными. Во-вторых, эти два вида данных доступны внутри обработчика различным способом.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *