trigger

« Обратно к странице событий

trigger( событие, [данные] )

Вызывает событие для каждого элемента набора.
Это также вызовет выполнение браузером действия по умолчанию для этого события. Например, передача ’submit’ в функцию trigger() спровоцирует также отправку браузером формы. Действие по умолчанию можно предотвратить путем возвращения значение false от одной из функций, связанных с событием.

Вызываемые события не ограничены только лишь событиями браузера, также можно вызывать и пользовательские события.

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

jQuery также поддерживает именованные события, которые позволяют вызывать или освобождать указанные группы привязанных обработчиков. Для вызова только тех событий, которые не имеют заданного пространства имен, следует добавить символ «!»  в конец типа события.

Новое в jQuery 1.3:

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

Вы можете использовать конструктор объекта события для создания Вашего собственного объекта события. Полный список доступных свойств объекта событий можно найти в документации.

У Вас есть 3 способа указания типа события:
  • Можно передать строку с именем (типом) события
  • Можно использовать объект jQuery.Event.
    Нужно поместить данные в этот объект и они попадут к вызываемым обработчикам.
  • Наконец, можно передать объект с данными, который будет скопирован в настоящий объект jQuery.Event. Но помните, в этом случае Вам необходимо указать тип.
Аргументы:

событие Строка,Событие,Объект
Объект события или тип.
данные (необязательно) Массив
Дополнительная информация.
Примеры:

Нажатие на кнопку #2 также вызывает нажатие и на кнопку #1.
    $("button:first").click(function () {
      update($("span:first"));
    });
    $("button:last").click(function () {
      $("button:first").trigger('click');

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

    function update(j) {
      var n = parseInt(j.text(), 10);
      j.text(n + 1);
    }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){

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

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

    function update(j) {
      var n = parseInt(j.text(), 10);
      j.text(n + 1);
    }

  });
  </script>

  <style>
  button { margin:10px; }
  div { color:blue; font-weight:bold; }
  span { color:red; }
  </style>
</head>
<body>
  <button>Button #1</button>
  <button>Button #2</button>

  <div><span>0</span> button #1 clicks.</div>
  <div><span>0</span> button #2 clicks.</div>

</body>
</html>

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

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

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

var event = jQuery.Event("submit");
$("form:first").trigger(event);
if ( event.isDefaultPrevented() ) {
  // Perform an action...
}

Передача произвольных данных событию:

$("p").click( function (event, a, b) {
  // when a normal click fires, a and b are undefined
  // for a trigger like below a refers to "foo" and b refers to "bar"

} ).trigger("click", ["foo", "bar"]);

Передача произвольных данных через объект события:

var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);

Альтернативный способ передачи данных объекту события:

$("body").trigger({
  type:"logged",
  user:"foo",
  pass:"bar"
});
Name Type