Metoda one
Metoda one umožňuje přidat obsluhu
událostí k elementu. Poté, co událost
proběhne jednou - obsluha bude
automaticky odstraněna.
Syntaxe
Tímto způsobem připojíme obsluhu událostí k elementu,
jako první parametr ve formě řetězce
se předává jedna nebo více událostí oddělených
mezerami, druhým - předáváme data ve formě objektu JavaScript,
které jsou předány do obsluhy ve vlastnosti
event.data při spuštění události. Druhý parametr
je volitelný. Třetím předáváme funkci-obsluhu,
do které se předává objekt události nebo předáme false:
$(selektor).one(události, [data], funkce-obsluha(objekt události));
Lze druhým parametrem předat dodatečný
filtrující selektor potomků uvnitř elementu,
třetím - dodatečná data, která jsou předána
do obsluhy ve vlastnosti event.data při
spuštění události. Druhý a třetí parametr
jsou volitelné. Čtvrtým předáváme
funkci-obsluhu, do které se předává objekt události
a volitelné dodatečné parametry. Pokud místo
funkce-obsluhy předáme false, pak funkce jednoduše
vrátí false:
$(selektor).one(události, [selektor], [data], funkce-obsluha(objekt události));
Lze využít metodu one jiným způsobem,
pak do prvního parametru předáme
objekt JavaScript, kde klíče - typ události, a
hodnoty - funkce-obsluha, kterou jsme přidali k
elementu:
$(selektor).one({'typ události': handler}, [selektor], [data]);
Pokud nepředáme dodatečný selektor, pak se událost spustí na elementu, ke kterému jsme připojili obsluhu, v opačném případě - na elementu-potomkovi, který odpovídá tomuto selektoru (delegované události).
Příklad
Při kliknutí na odstavec vypíšeme data, která
jsme předali do metody one. Při následných kliknutích
se již nic dít nebude. Využijeme
funkci-obsluhu testFunc,
kterou jsme vytvořili:
<p>klikněte</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);