Суббота, 11.05.2024, 00:09
Меню сайта
Категории раздела
JQuery плагины [59]
JQuery уроки [69]
PHP полезное [24]
PHP уроки [21]
Css [26]
JS [3]
SQL [9]
Css 3 [17]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » JQuery уроки

jquery trigger()


.trigger( типСобытия, дополнительныеПараметры )


Читать также: .trigger()



Описание: Выполняет все обработчики и привязанные поведения для соответствующих элементов для данного типа события.

.trigger( типСобытия, дополнительныеПараметры )


Строка, содержащая тип события JavaScript, такой как нажатие или отправка.

Массив дополнительных параметров, для отправки в обработчик события.

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

$('#foo').bind('click', function() {
 alert($(this).text());
 });
 $('#foo').trigger('click');

В то время как .trigger() имитирует событие активации, в комплекте с синтезированным объектом события, это не вполне повторяет естественную среду события.

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

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


$('#foo').bind('custom', function(event, param1, param2) {
 alert(param1 + "n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
 

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

Обратите внимание на разницу между дополнительными параметрами передающимися сюда и параметром eventData в методе .bind(). Они оба механизмы для передачи информации в обработчик событий, но аргумент extraParameters в .trigger() предоставляет информацию, которая будет определена на момент вызова события, в то время как аргумент eventData в методе .bind() требует информации, которая будет рассчитывается на момент привязки обработчика.

Примеры

Пример 1

Нажатие на кнопку #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);
 }


Пример 2

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

Пример 3

Чтобы отправить первую форму на странице без использования функции submit(), сделайте:
var event = jQuery.Event("submit");
$("form:first").trigger(event);
if ( event.isDefaultPrevented() ) {
 // Perform an action...
}

Пример 4

Передача произвольных данных событию:
$("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"]);

Пример 5

Передача произвольных данных через объект события:
var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);

Пример 6

Альтернативный способ передачи данных объекту события:
$("body").trigger({
 type:"logged",
 user:"foo",
 pass:"bar"
});


 
Категория: JQuery уроки | Добавил: ChronoW (21.11.2012)
Просмотров: 2565 | Теги: jquery trigger() | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: