Metoda triggerHandler
Metoda triggerHandler pozwala uruchomić
wszystkie procedury obsługi zdarzeń powiązanych z elementem. Działa
analogicznie do metody
trigger,
ale między nimi istnieją różnice:
Procedura obsługi zdarzeń zostanie uruchomiona, ale standardowe
zdarzenie nie zostanie wywołane. Na przykład
triggerHandler('submit'),
uruchamiając się, nie wywoła submit.
Metoda triggerHandler działa
tylko na pierwszym elemencie w zestawie.
Zdarzenia uruchomione przez triggerHandler
nie propagują się w hierarchii elementów DOM.
triggerHandler nie zwraca obiektu jQuery,
zwraca wartość otrzymaną z ostatnio
wywołanej procedury obsługi. Jeśli żadne procedury obsługi nie
zostaną uruchomione, zwraca undefined.
Składnia
Jako pierwszy parametr możemy przekazać typ zdarzenia w postaci ciągu znaków, drugim opcjonalnie tablicę lub obiekt zawierający dodatkowe parametry do przekazania procedurze obsługi:
$(selektor).triggerHandler(typ zdarzenia, [dodatkowe parametry]);
Można pierwszym parametrem przekazać zdarzenie
w postaci obiektu jQuery.Event:
$(selektor).trigger(zdarzenie, [dodatkowe parametry]);
Przykład
Sprawmy, aby po kliknięciu przycisku
z #test1 nasze pole wprowadzania otrzymało fokus i w
konsoli wyświetliło się 'Focused', innymi
słowy - uruchomi się zarówno funkcja obsługi, jak i
zdarzenie fokusu. Po kliknięciu drugiego przycisku
z #test2 uruchomi się tylko funkcja obsługi,
ale pole wprowadzania nie otrzyma fokusu:
<button id="test1">button1</button>
<button id="test2">button2</button>
<input type="text">
$('#test1').click(function() {
$('input').trigger('focus');
});
$('#test2').click(function() {
$('input').triggerHandler('focus');
});
$('input').focus(function() {
console.log('Focused')
});