Metoda one
Metoda one pozwala dodać obsługę
zdarzeń do elementu. Po tym, jak zdarzenie
zostanie obsłużone jeden raz - obsługa zostanie
automatycznie usunięta.
Składnia
W ten sposób dołączamy obsługę zdarzeń do elementu,
jako pierwszy parametr w postaci ciągu znaków
przekazywane jest jedno lub kilka zdarzeń oddzielonych
spacjami, drugim - przekazujemy dane w postaci obiektu JavaScript,
które są przekazywane do obsługi we właściwości
event.data przy wywołaniu zdarzenia. Drugi parametr
jest opcjonalny. Trzecim przekazujemy funkcję obsługującą,
do której przekazywany jest obiekt zdarzenia lub przekazujemy false:
$(selektor).one(zdarzenia, [dane], funkcja-obsługująca(obiekt zdarzenia));
Można drugim parametrem przekazać dodatkowy
filtrujący selektor potomków wewnątrz elementu,
trzecim - dodatkowe dane, które są przekazywane
do obsługi we właściwości event.data przy
wywołaniu zdarzenia. Drugi i trzeci parametr
są opcjonalne. Czwartym przekazujemy
funkcję obsługującą, do której przekazywany jest obiekt zdarzenia
i opcjonalne dodatkowe parametry. Jeśli zamiast
funkcji obsługującej przekażemy false, to funkcja po prostu
zwróci false:
$(selektor).one(zdarzenia, [selektor], [dane], funkcja-obsługująca(obiekt zdarzenia));
Można skorzystać z metody one inaczej,
wtedy w pierwszy parametr przekazywany jest
obiekt JavaScript, gdzie klucze - typ zdarzenia, a
wartości - funkcja obsługująca, którą dodaliśmy do
elementu:
$(selektor).one({'typ zdarzenia': handler}, [selektor], [dane]);
Jeśli nie przekazujemy dodatkowego selektora, to zdarzenie jest wywoływane na elemencie, do którego dołączamy obsługę, w przeciwnym przypadku - na elemencie-potomku, który odpowiada temu selektorowi (zdarzenia delegowane).
Przykład
Kliknijmy w akapit, aby wyświetlić dane, które
przekazaliśmy do metody one. Przy kolejnych kliknięciach
nic się nie będzie działo. Wykorzystajmy
funkcję obsługującą testFunc,
którą utworzyliśmy:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);