jQuery-da bir marta sodir bo'ladigan hodisa
Biz hodisalarni
off
metodi yordamida uzishni o‘rganayotganimizda,
quyidagi konstruksiyadan foydalangan edik:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Avval biz
on
yordamida funktsiya-ishlovchini biriktirdik,
keyin off yordamida uzib qo‘ydik.
jQuery-da qulay
one
metodi mavjud,
bu faqat bir marta sodir bo‘ladigan hodisani bog‘lashga imkon beradi -
u faqat bir marta ishlaydi, so‘ngra
avtomatik ravishda uziladi. Ushbu metod
birinchi parametr sifatida hodisa turini qabul qiladi,
ikkinchisida esa bog‘langan funktsiyani.
Quyidagi misolni quyidagi HTML kod asosida ko'rib chiqamiz:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
CSS kod shunday ko'rinadi:
li {
width: 100px;
cursor: pointer;
}
Endi har bir li ga
bir marta sodir bo'ladigan hodisani bog'laymiz:
$('li').one('click', function() {
$(this).append('!');
});
Ro'yxat bandlarini bosib ko'ring.
Ko'rib turganingizdek, biz
one metodi tufayli xuddi shu ta'sirga erishdik.
Barcha havolalarga hodisa bog'lang -
havolaning ustiga sichqoncha olib borilganda, uning matnining oxiriga
uning href i qavs ichida qo'shilsin.
Havolaning ustiga birinchi marta olib borilgandan so'ng
undan href ni matn oxiriga qo'shadigan
hodisani uzib qo'ying.
Barcha inputlar uchun shunday qilingki, ular
o'zining value sini
har qanday input bosilganda chiqarsin, lekin faqat
birinchi bosilganda.
Inputni qayta bosish
reaksiyani keltirib chiqarmasligi kerak.
Raqamlar bilan abzatslar berilgan. Abzats ustiga bosilganda unda o'zida mavjud bo'lgan sonning kvadrati paydo bo'lsin, lekin faqat birinchi bosilganda. Abzats ustiga ikki marta bosilganda, abzatsdagi son ikki baravar ko'paytirilsin, lekin yana faqat birinchi marta.
Abzatslar berilgan. Shunday qilingki, birinchi
marta abzats ustiga bosilganda uning oxiriga '!' qo'shilsin,
lekin faqat birinchi bosilganda.