Rumah >hujung hadapan web >tutorial js >Mengapa Ketukan Kekunci Anak Panah Tidak Dikesan dalam Fungsi `checkKey` JavaScript Saya?

Mengapa Ketukan Kekunci Anak Panah Tidak Dikesan dalam Fungsi `checkKey` JavaScript Saya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-24 14:04:14750semak imbas

Why are Arrow Keystrokes Not Detected in My JavaScript `checkKey` Function?

Pengenalpastian Kunci dan Pengesanan Kekunci Anak Panah dalam JavaScript

Mengesan input papan kekunci adalah penting untuk banyak aplikasi JavaScript. Walaupun mengenal pasti ketukan kekunci secara amnya mudah, pengendalian kekunci anak panah memberikan cabaran yang unik kerana kelakuan menatal aslinya dalam kebanyakan penyemak imbas. Soalan ini meneroka isu yang dihadapi apabila menggunakan fungsi checkKey, yang berjaya menangkap ketukan kekunci tetapi gagal mengesan ketukan kekunci anak panah.

Jawapan kepada isu ini terletak pada jenis acara tertentu yang dikaitkan dengan kekunci anak panah. Tidak seperti kekunci biasa, kekunci anak panah hanya mencetuskan peristiwa onkeydown. Oleh itu, untuk menangkap input kekunci anak panah, adalah perlu untuk mengubah suai fungsi checkKey dengan sewajarnya:

function checkKey(e) {
    var event = window.event ? window.event : e;
    if (event.type === "keydown")  // Check for keydown event
        console.log(event.keyCode)
}

Selain itu, jawapan menyediakan kod kekunci yang sepadan untuk kekunci anak panah:

  • kiri = 37
  • atas = 38
  • kanan = 39
  • bawah = 40

Menggunakan kod kekunci ini, pembangun boleh dengan mudah melaksanakan fungsi yang bertindak balas kepada penekanan kekunci anak panah.

Atas ialah kandungan terperinci Mengapa Ketukan Kekunci Anak Panah Tidak Dikesan dalam Fungsi `checkKey` JavaScript Saya?. 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