Vienreizējs notikums jQuery
Kad mēs pētījām notikumu atvienošanu ar
metodes
off
palīdzību,
mēs izmantojām šādu konstrukciju:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Vispirms mēs pievienojām apstrādes funkciju ar
on
palīdzību,
tad atvienojām ar off palīdzību.
jQuery ir ērta metode
one,
kas ļauj piesaistīt vienreizēju notikumu -
tas izpildīsies tikai vienu reizi, un
pēc tam automātiski atvienosies. Šī metode
pirmo parametru pieņem kā notikuma veidu,
un otro - piesaistīto funkciju.
Nākamo piemēru mēs apskatīsim, balstoties uz zemāk redzamo HTML kodu:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
CSS kods izskatās šādi:
li {
width: 100px;
cursor: pointer;
}
Tagad pie katras li piesaistām
vienreizēju notikumu:
$('li').one('click', function() {
$(this).append('!');
});
Noklikšķiniet uz saraksta
punktiem. Kā redzat, mēs ieguvām tādu pašu efektu, pateicoties
metodei one.
Piesaistiet visām saitēm notikumu - kad
uzvedat kursoru virs saites, beigās tās tekstam
pievienojiet tās href apaļās
iekavās. Pēc pirmās reizes, kad kursors ir novadīts virs saites,
no tās ir jāatvieno notikums, kas
pievieno href teksta beigās.
Visiem ievades laukiem izveidojiet tā, lai tie
izvadītu savu value, kad
tiek noklikšķināts uz jebkura no tiem, bet tikai
pirmo reizi. Atkārtota noklikšķināšana uz
ievades lauka nedrīkst izraisīt reakciju.
Doti rindkopas ar skaitļiem. Noklikšķinot uz rindkopas, tajā jāparādās skaitļa kvadrāts, kuru tā satur, bet tikai pirmajā noklikšķinājumā. Veicot dubultklikšķi uz rindkopas, skaitlim rindkopā jāpalielinās divas reizes, bet arī tikai pirmo reizi.
Doti rindkopas. Izveidojiet tā, lai pirmajā
noklikšķinājumā uz rindkopas tās beigās tiktu pievienots '!',
bet tikai pirmajā noklikšķinājumā.