Metóda on
Metóda on umožňuje pridať obsluhu
udalostí k elementu. Na odstránenie obsluhy
je možné použiť metódu
off,
aby udalosť zafungovala iba raz a potom
sa obsluha odstránila sama - použite metódu
one.
Elementy, ku ktorým pripájame obsluhu, musia
existovať v čase volania on.
Syntax
Takto pridáme obsluhu udalostí k elementu,
ako prvý parameter v podobe reťazca sa odovzdáva
jedna alebo viac udalostí oddelených medzerami, druhým
parametrom odovzdávame doplnkový filtrujúci
selektor potomkov vo vnútri elementu, tretím - doplnkové
dáta, ktoré sa odovzdajú do obsluhy vo vlastnosti
event.data
pri spustení udalosti. Druhý a tretí parameter
sú voliteľné. Štvrtým odovzdávame funkciu-obsluhu,
do ktorej sa odovzdáva objekt udalosti a voliteľné
doplnkové parametre. Ak namiesto funkcie-obsluhy
odovzdáme false, tak funkcia jednoducho vráti false:
$(selektor).on(udalosti, [selektor], [dáta], funkcia-obsluha(objekt udalosti, [doplnkové parametre]));
Je možné použiť metódu on inak,
vtedy do prvého parametra sa odovzdáva
objekt JavaScript, kde kľúče - typ udalosti, a
hodnoty - funkcie-obsluhy, volané
pre udalosti:
$(selektor).on({'typ udalosti': handler}, [selektor], [dáta]);
Ak neodovzdávame doplnkový selektor, tak udalosť sa spustí na elemente, ku ktorému sme pripojili obsluhu, inak - na elemente-potomkovi, ktorý zodpovedá tomu selektoru (delegované udalosti). Rovnaká obsluha udalosti môže byť pripojená k elementu viackrát.
Príklad
Poďme do alert,
zobraziť text odseku s #test pri
kliknutí naň, kliknutia na iné odseky k ničomu
nepovedú:
<p>text1</p>
<p id="test">text2</p>
<p>text3</p>
$('#test').on('click', function() {
alert( $(this).text() );
});
Príklad
Poďme pri kliknutí na odsek zobraziť dáta, ktoré
sme odovzdali do metódy on. Použijeme
funkciu-obsluhu testFunc,
ktorú sme vytvorili:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').on('click', {text: 'aaa'}, testFunc);
Pozri tiež
-
metóda
off,
ktorá umožňuje odstrániť obsluhu udalostí u elementu -
metóda
one,
ktorá umožňuje udalosti zafungovať raz, a potom automaticky odstrániť obsluhu -
objekt
event,
ktorý obsahuje informácie o udalosti -
metóda
trigger,
ktorá umožňuje spustiť všetky obsluhy udalostí, pripojené k elementu pre udalosti daného typu -
JavaScript metóda
bind,
ktorá umožňuje pripojiť kontext k funkcii