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:

javascript$(selektor).triggerHandler(typ zdarzenia, [dodatkowe parametry]);

Można pierwszym parametrem przekazać zdarzenie w postaci obiektu jQuery.Event:

javascript$(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:

html<button id="test1">button1</button>
<button id="test2">button2</button>
<input type="text">
javascript$('#test1').click(function() {
  $('input').trigger('focus');
});

$('#test2').click(function() {
  $('input').triggerHandler('focus');
});

$('input').focus(function() {
  console.log('Focused')
});

Zobacz też

  • metoda trigger,
    która pozwala uruchomić wszystkie procedury obsługi zdarzeń, powiązane z elementem dla zdarzeń określonego typu
  • metoda on,
    która pozwala powiązać procedurę obsługi zdarzeń z elementem