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:
$(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:
$(selektor).off({'typ zdarzenia': handler}, [selektor]);
Możemy po prostu przekazać jeden parametr w postaci
obiektu jQuery.Event:
$(selektor).off(zdarzenie);
Jeśli nie przekażemy metodzie parametrów, to odepniemy od elementu wszystkie podpięte obsługi:
$(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):
<p id="test1">click1</p>
<p id="test2">click2</p>
function 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ę