Metodi one
Metodi one mahdollistaa tapahtumankäsittelijän
lisäämisen elementtiin. Sen jälkeen, kun tapahtuma
toimii kerran - käsittelijä poistetaan
automaattisesti.
Syntaksi
Näin kiinnitämme tapahtumankäsittelijän elementtiin,
ensimmäisenä parametrina merkkijonona
välitetään yksi tai useampi tapahtuma välilyönneillä erotettuna,
toisena - välitämme datan JavaScript-olion muodossa,
jotka välitetään käsittelijään ominaisuudessa
event.data tapahtuman laukeamisen yhteydessä. Toinen parametri
on valinnainen. Kolmantena välitämme käsittelijäfunktion,
jolle välitetään tapahtuma-objekti tai välitämme false:
$(valitsin).one(tapahtumat, [data], käsittelijäfunktio(tapahtuma-objekti));
Toisena parametrina voidaan välittää lisä-
suodatinvalitsin elementin jälkeläisille,
kolmantena - lisätiedot, jotka välitetään
käsittelijään ominaisuudessa event.data
tapahtuman laukeamisen yhteydessä. Toinen ja kolmas parametrit
ovat valinnaisia. Neljäntenä välitämme
käsittelijäfunktion, jolle välitetään tapahtuma-objekti
ja valinnaiset lisäparametrit. Jos käsittelijäfunktion
sijasta välitetään false, niin funktio palauttaa vain
false:
$(valitsin).one(tapahtumat, [valitsin], [data], käsittelijäfunktio(tapahtuma-objekti));
Metodia one voidaan käyttää toisella tavalla,
silloin ensimmäisenä parametrina välitetään
JavaScript-objekti, jossa avaimet - tapahtumatyyppi, ja
arvot - käsittelijäfunktio, jonka lisäsimme
elementtiin:
$(valitsin).one({'tapahtumatyyppi': handler}, [valitsin], [data]);
Jos emme välitä lisävalitsinta, niin tapahtuma laukeaa elementillä, johon me kiinnitämme käsittelijän, muussa tapauksessa - jälkeläiselementillä, joka vastaa tätä valitsinta (delegoidut tapahtumat).
Esimerkki
Laatikkoa napsautettaessa tulostetaan tiedot, jotka
me välitimme metodiin one. Seuraavissa napsautuksissa
mitään ei tapahdu. Käytetään
käsittelijäfunktiota testFunc,
jonka loimme:
<p>napsauta</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);