jQueryn off-metodi
Tapahtumien irrottaminen, jotka on sidottu
on-metodilla,
toteutetaan käyttämällä
off-metodia.
Ensimmäisenä parametrina se ottaa tapahtumatyypin
(esimerkiksi 'click'), ja toisena - funktion nimen,
jonka tulisi irrottaa.
Tarkastellaan seuraavaa esimerkkiä. Oletetaan, että meillä on HTML-koodi:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
CSS:ssä on määritelty tyyli li-tagille:
li {
width: 100px;
cursor: pointer;
}
Tehdään niin, että ensimmäisen
klikkauksen jälkeen li:llä, tapahtuma irrotetaan
siitä:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Klikkaile listan kohtia. Huomaat, että toistuvalla
klikkauksella samaan listakohtaan ei tapahdu mitään, koska
meidän funktiomme func suorituksen jälkeen
append-metodista
irrotetaan off-metodilla.
Liitä kaikkiin linkkeihin tapahtuma -
kun linkkiin viitataan, sen tekstin loppuun
lisätään sen href pyöreissä
suluissa. Ensimmäisen linkin osoittamisen jälkeen
on irrotettava siitä tapahtuma, joka
lisää href-arvon tekstin loppuun.
Tee kaikille input-kentille niin, että ne
tulostavat oman value-arvonsa
mitä tahansa niistä painettaessa, mutta vain
ensimmäisellä painalluksella. Toistuva input-kentän
painaminen ei saa aiheuttaa reaktiota.
Annettuna on kappaleita numeroilla. Kun kappaletta klikataan, siihen pitäisi ilmestyä sen sisältämän luvun neliö, mutta vain ensimmäisellä klikkauksella. Kun kappaletta kaksoisklikataan, kappaleen luku pitäisi kaksinkertaistua, mutta myös vain ensimmäisen kerran.