jQuery-da bir marta sodir bo'ladigan hodisa

Biz hodisalarni off metodi yordamida uzishni o‘rganayotganimizda, quyidagi konstruksiyadan foydalangan edik:

javascript$('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:

html<ul>
  <li>text</li>
  <li>text</li>
  <li>text</li>
</ul>

CSS kod shunday ko'rinadi:

cssli {
  width: 100px;
  cursor: pointer;
}

Endi har bir li ga bir marta sodir bo'ladigan hodisani bog'laymiz:

javascript$('li').one('click', function() {
  $(this).append('!');
});

Ro'yxat bandlarini bosib ko'ring. Ko'rib turganingizdek, biz one metodi tufayli xuddi shu ta'sirga erishdik.

Задание 1

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.

Задание 2

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.

Задание 3

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.

Задание 4

Abzatslar berilgan. Shunday qilingki, birinchi marta abzats ustiga bosilganda uning oxiriga '!' qo'shilsin, lekin faqat birinchi bosilganda.