Peristiwa Sekali Sahaja dalam jQuery

Apabila kita mempelajari cara membuka ikatan peristiwa dengan menggunakan kaedah off, kita menggunakan konstruksi berikut:

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

Pertama, kami melampirkan fungsi pengendali dengan menggunakan on, kemudian membuka ikatannya dengan menggunakan off.

jQuery mempunyai kaedah yang mudah one, yang membolehkan anda mengikat peristiwa sekali sahaja - ia akan dilaksanakan hanya sekali, dan kemudian secara automatik terlepas. Kaedah ini menerima jenis peristiwa sebagai parameter pertama, dan fungsi terikat sebagai parameter kedua.

Contoh seterusnya akan kita lihat berdasarkan kod HTML di bawah:

html<ul>
  <li>teks</li>
  <li>teks</li>
  <li>teks</li>
</ul>

Kod CSS kelihatan seperti ini:

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

Sekarang kita ikat peristiwa sekali sahaja pada setiap li:

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

Cuba klik pada item senarai. Seperti yang anda lihat, kami mendapat kesan yang sama, berkat kaedah one.

Задание 1

Ikat peristiwa kepada semua pautan - apabila penunjuk tetikus dilalukan ke atas pautan, href-nya ditambahkan pada akhir teksnya dalam kurungan bulat. Selepas pertama kali penunjuk tetikus dilalukan ke atas pautan, peristiwa yang menambah href pada akhir teks harus dilepaskan daripadanya.

Задание 2

Untuk semua input, pastikan mereka memaparkan value mereka sendiri apabila mana-mana daripadanya ditekan, tetapi hanya pada tekanan pertama. Tekanan berulang pada input tidak sepatutnya menyebabkan sebarang tindak balas.

Задание 3

Diberi perenggan dengan nombor. Apabila diklik pada perenggan, kuasa dua nombor yang dikandungnya harus muncul di dalamnya, tetapi hanya pada klik pertama. Apabila diklik dua kali pada perenggan, nombor dalam perenggan harus digandakan, tetapi juga hanya untuk kali pertama.

Задание 4

Diberi perenggan. Pastikan pada klik pertama pada perenggan, '!' ditambahkan pada akhirnya, tetapi hanya pada klik pertama.