Metoda off

Metoda off pozwala na odpięcie obsługi zdarzeń od elementu. Aby podpiąć obsługę można skorzystać z metody off.

Składnia

W ten sposób usuwamy obsługę zdarzeń z elementu, jako pierwszy parametr w postaci ciągu znaków przekazywane jest jedno lub kilka zdarzeń oddzielonych spacjami, drugim - przekazujemy dodatkowy selektor filtrujący potomków wewnątrz elementu (powinien pasować do tego, co przekazaliśmy w metodzie on, gdy podpinaliśmy obsługę). Aby usunąć wszystkie zdarzenia delegowane, przekaż wartość '**'. Drugi parametr jest opcjonalny. Trzecim przekazujemy funkcję-obsługę (którą podpięliśmy), do której przekazywany jest obiekt zdarzenia lub przekazujemy false:

javascript$(selektor).off(zdarzenia, [selektor], funkcja-obsługa(obiekt zdarzenia));

Można skorzystać z metody off inaczej, wtedy w pierwszy parametr przekazywany jest obiekt JavaScript, gdzie klucze - typ zdarzenia, a wartości - funkcje-obsługi, które dodaliśmy do elementu:

javascript$(selektor).off({'typ zdarzenia': handler}, [selektor]);

Możemy po prostu przekazać jeden parametr w postaci obiektu jQuery.Event:

javascript$(selektor).off(zdarzenie);

Jeśli nie przekażemy metodzie parametrów, to odepniemy od elementu wszystkie podpięte obsługi:

javascript$(selektor).off();

Przykład

Dodajmy do akapitów funkcję-obsługę testFunc. Ale od razu usuwamy obsługę u drugiego akapitu, tym samym kliknięcie w drugi akapit nie będzie do niczego prowadzić (jeśli zakomentujemy ostatnią linijkę kodu, to zobaczymy jak zdarzenie jest uruchamiane i po kliknięciu na drugi akapit):

html<p id="test1">click1</p>
<p id="test2">click2</p>
javascriptfunction testFunc(event) {
  alert(event.data.text);
}

$('#test1').on('click', {text: 'aaa'}, testFunc); // dodajemy obsługę

$('#test2').on('click', {text: 'bbb'}, testFunc); // dodajemy obsługę
$('#test2').off('click', testFunc); // usuwamy obsługę

Zobacz też

  • metoda on,
    która pozwala podpiąć obsługę zdarzeń do elementu
  • metoda one,
    która pozwala zdarzeniu zadziałać raz, a następnie automatycznie usunąć obsługę