Вызывает событие у выбранных элементов, что приводит к запуску
обработчиков этого события. Метод имеет два варианта использования:
.trigger(eventType, [extraParameters]):jQueryv:1.0
eventType — тип вызываемого события. Например "click", "resize" и.т.д. (список всех событий см. ниже).
extraParameters — массив дополнительных данных, передаваемых в обработчик.
Позволяет повторно запустить событие из обработчика текущего события.
Может быть полезно при необходимости вызывать событие через
определенные периоды времени.
eventObject — объект обрабатываемого события, который был передан в обработчик.
Простой пример:
// установим обработчик нажатия кнопки мыши на элементе foo
$('#foo').bind('click', function(){
alert('Шла Саша по шоссе')
});
// вызовем событие нажатия на элемент, что приведет к выполнению обработчика
$('#foo').trigger('click');
Надо отметить, что вызов события методом trigger() не полностью
повторяет событие, произошедшее по естественным причинам. Например
вызов события "click" применительно к ссылке, не приведет к переходу по
ней.
Если вам необходимо только вызвать обработчики событий, без выполнения самого события, воспользуйтесь методом triggerHandler().
О типах событий можно посмотреть в описании метода bind().
Передача дополнительных данных
Метод позволяет передавать дополнительные данные в обработчик, с помощью необязательного параметра extraParameters.
Этот параметр должен быть задан массивом. В методе, эти данные будут
доступны во втором, третьем и.т.д. параметрах (по одному дополнительному
параметру на каждый элемент массива). Первый параметр, в любом
обработчике событий занят объектом события.
Рассмотрим пример передачи дополнительных данных:
// зададим обработчик с двумы дополнительными параметрами
$('#foo').bind('custom', function(event, param1, param2){
alert(param1 + "\n" + param2);
});
// вызовем событие методом trigger, в результате будет запущен наш обработчик
$('#foo').trigger('custom', ['Custom', 'Event']); // вторым параметром передан массив с двумя строками
Отметим разницу между дополнительными данными, передаваемыми при установке обработчика событий (параметр eventData) и данными передаваемыми при вызове события методом trigger() (параметр extraParameters). Во-первых, есть смысловое отличие: eventData задается один раз для каждого обработчика, поэтому, при каждом вызове, он будет получать одно и то же значение. Параметр extraParameters
задается для каждого отдельного вызова заново, и поэтому значения могут
быть разными. Во-вторых, эти два вида данных доступны внутри
обработчика различным способом:
// зададим обработчик
$('#foo').bind('custom', {otherParam:'uha-ha!'}, function(event, param1, param2){
alert(param1 + "\n" + param2); // так осуществляется доступ к данным extraParameters
alert(event.data.otherParam); // а так к данным eventData
});
// вызовим событие методом trigger, в результате будет запущен наш обработчик
$('#foo').trigger('custom', ['Custom', 'Event']);
|