Metoda off
Metoda off umožňuje odpojit obsluhu
událostí od elementu. Pro připojení obsluhy
lze použít metodu
off.
Syntaxe
Tímto způsobem odstraňujeme obsluhu událostí z elementu,
jako první parametr se ve formě řetězce
předává jedna nebo více událostí oddělených
mezerami, druhým - předáváme dodatečný
filtrující selektor potomků uvnitř elementu
(měl by odpovídat tomu, co jsme předávali
v metodě on při připojování
obsluhy). Pro odstranění všech delegovaných událostí,
předejte hodnotu '**'. Druhý parametr
je volitelný. Třetím předáváme funkci-obsluhu
(kterou jsme připojovali), do které se předává objekt
události nebo předáme false:
$(selektor).off(události, [selektor], funkce-obsluha(objekt události));
Lze použít metodu off jiným způsobem,
pak se do prvního parametru předává
objekt JavaScript, kde klíče jsou typ události a
hodnoty - funkce-obsluhy, které jsme přidali k
elementu:
$(selektor).off({'typ události': handler}, [selektor]);
Můžeme jednoduše předat jeden parametr ve formě
objektu jQuery.Event:
$(selektor).off(událost);
Pokud metodě nepředáme parametry, pak odpojíme od elementu všechny připojené obsluhy:
$(selektor).off();
Příklad
Přidejme k odstavcům funkci-obsluhu
testFunc. Ale okamžitě odstraníme obsluhu u
druhého odstavce, tím pádem kliknutí na druhý odstavec nebude
nic způsobovat (pokud zakomentujeme poslední
řádek kódu, uvidíme, jak se událost spustí i
při kliknutí na druhý odstavec):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // přidáme obsluhu
$('#test2').on('click', {text: 'bbb'}, testFunc); // přidáme obsluhu
$('#test2').off('click', testFunc); // odstraníme obsluhu