Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk melaksanakan pengubahsuaian klik dua kali dalam javascript

Bagaimana untuk melaksanakan pengubahsuaian klik dua kali dalam javascript

PHPz
PHPzasal
2023-04-06 12:44:081394semak imbas

JavaScript ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan bahagian hadapan, dan pembangun boleh menggunakannya untuk melaksanakan pelbagai fungsi imaginasi. Satu ciri berguna ialah membenarkan pengguna mengubah suai kandungan elemen pada halaman apabila mereka mengklik dua kali padanya. Ciri ini digunakan dalam banyak aplikasi, seperti penyunting teks atau pengurus tugas. Dalam artikel ini, kita akan belajar cara melaksanakan fungsi ini menggunakan JavaScript.

Tambah acara klik dua kali

Pertama, sebelum kita mengubah suai kandungan elemen, kita perlu menambah acara klik dua kali padanya. Kita boleh melakukannya dengan cara berikut:

element.addEventListener('dblclick', function() {
  // 在这里编写事件处理逻辑
});

Dalam kod di atas, kami telah menggunakan kaedah addEventListener untuk menambah acara klik dua kali, dan fungsi yang dikaitkan dengannya akan dilaksanakan apabila pengguna mengklik dua kali pada elemen. Memandangkan elemen kami mempunyai acara klik dua kali, langkah seterusnya ialah mengubah suai kandungannya dalam acara klik dua kali.

Ubah suai kandungan elemen

Selepas kami menentukan elemen untuk menambah acara, langkah seterusnya ialah mengubah suai kandungan elemen dalam acara klik dua kali. Kita boleh menggunakan atribut innerHTML untuk mendapatkan dan menetapkan kandungan elemen.

element.addEventListener('dblclick', function() {
  var currentContent = element.innerHTML;
  element.innerHTML = '替换内容';
});

Dalam kod di atas, kita mula-mula mendapatkan kandungan semasa elemen menggunakan atribut innerHTML dan menyimpannya dalam pembolehubah currentContent. Kami kemudian menetapkan kandungan elemen terus kepada rentetan baharu, dengan itu menukar teks paparannya.

Laksanakan pengubahsuaian klik dua kali

Kini, kami telah melaksanakan acara klik dua kali asas dan kod untuk mengubah suai kandungan elemen. Walau bagaimanapun, terdapat beberapa isu dengan pelaksanaan ini yang perlu ditangani dengan lebih lanjut. Sebagai contoh, kita perlu memastikan bahawa hanya satu elemen boleh diedit pada satu-satu masa dan elemen itu tidak boleh diklik dua kali untuk memilih atau menyeret. Untuk menyelesaikan masalah ini, kita perlu melanjutkan kod:

var currentEditable = null;

function makeEditable(element) {
  element.setAttribute('contenteditable', 'true');
  element.focus();
  currentEditable = element;
}

function makeNonEditable() {
  if (currentEditable) {
    currentEditable.setAttribute('contenteditable', 'false');
    currentEditable = null;
  }
}

document.addEventListener('click', function(event) {
  if (!event.target.isContentEditable) {
    makeNonEditable();
  }
});

document.addEventListener('keydown', function(event) {
  if (event.keyCode === 13) {
    makeNonEditable();
  }
});

element.addEventListener('dblclick', function(event) {
  event.preventDefault();
  makeNonEditable();

  if (event.target.isContentEditable) {
    return;
  }

  makeEditable(event.target);
});

Pelaksanaan ini termasuk langkah berikut:

  1. Kami mentakrifkan pembolehubah global currentEditable untuk menjejaki elemen sedang dalam keadaan penyuntingan Jika tiada unsur dalam keadaan penyuntingan, pembolehubah ini ialah null.
  2. Kami mentakrifkan dua fungsi pembantu makeEditable dan makeNonEditable, yang digunakan untuk menukar elemen kepada keadaan boleh diedit. Apabila halaman tidak boleh diedit, mengklik mana-mana pada halaman akan berhenti mengedit.
  3. Kami menambah dua pendengar acara:

    • click Pendengar digunakan untuk mengesan peristiwa klik tetikus. Jika elemen sasaran acara klik tidak boleh diedit, kami mengalihkan semua elemen daripada keadaan pengeditan kepada keadaan bukan pengeditan.
    • keydown Pendengar digunakan untuk mengesan peristiwa penting. Jika pengguna menekan kekunci Enter, semua elemen beralih daripada menyunting kepada keadaan tidak menyunting.
  4. Kami menambah dblclick pendengar, yang digunakan untuk mengesan acara klik dua kali pengguna. Jika pengguna mengklik dua kali elemen yang tidak boleh diedit, elemen tersebut akan ditukar kepada keadaan boleh diedit.

Kini, kita boleh menggunakan kod di atas untuk melaksanakan pengeditan klik dua kali pada teks.

Ringkasan

Dalam artikel ini, kami menggunakan JavaScript untuk menulis kod yang mengklik dua kali untuk mengubah suai kandungan elemen. Kami menggunakan kaedah addEventListener untuk menambah acara klik dua kali pada elemen dan dalam acara itu gunakan atribut innerHTML untuk mengubah suai kandungan elemen. Akhir sekali, kami juga menambah pemprosesan lain, seperti mengawal hanya satu elemen untuk diedit. Pelaksanaan ini membantu meningkatkan kebolehgunaan dan pengalaman pengguna aplikasi anda, dan kami berharap ia dapat membantu kerja pembangunan anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengubahsuaian klik dua kali dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn