Hei ada! Sebagai pembekal kotak senarai, saya mempunyai bahagian pengalaman saya yang saksama yang berurusan dengan pelbagai isu yang berkaitan dengan kotak senarai. Salah satu masalah biasa yang sering dihadapi pengguna ialah mengendalikan peristiwa papan kekunci pada kotak senarai. Dalam catatan blog ini, saya akan berkongsi beberapa petua dan cara untuk mengendalikan peristiwa papan kekunci pada kotak senarai dengan berkesan.
Mula -mula, mari kita faham mengapa mengendalikan peristiwa papan kekunci pada kotak senarai adalah penting. Dalam banyak aplikasi, kotak senarai digunakan untuk memaparkan senarai item, dan pengguna perlu dapat menavigasi item ini menggunakan papan kekunci. Sebagai contoh, mereka mungkin mahu menggunakan kekunci anak panah atas dan ke bawah untuk memilih item yang berbeza, atau kekunci Enter untuk melakukan tindakan pada item yang dipilih. Tanpa pengendalian acara papan kekunci yang betul, pengalaman pengguna boleh menjadi sangat mengecewakan.
Pengendalian Acara Papan Kekunci Asas
Acara papan kekunci yang paling asas yang anda ingin mengendalikan untuk kotak senarai adalah acara utama anak panah (naik dan turun) dan acara utama Enter. Mari kita mulakan dengan acara utama anak panah.
Apabila pengguna menekan kekunci anak panah UP, anda akan mahu memindahkan pemilihan satu item dalam kotak senarai. Begitu juga, apabila mereka menekan kekunci anak panah bawah, anda akan mahu memindahkan pemilihan satu item. Berikut adalah contoh mudah bagaimana anda boleh mencapai ini dalam JavaScript:
const listBox = document.getElementById ('MyListBox'); listBox.AddEventListener ('keydown', fungsi (event) {if (event.key === 'arrowup') {const dipilihIndex = listBox.SelectedIx; if (SELECTEDINDEX> 0) {listBox.SelectedIndex = SELECTICEDEX - 1; (SelectedIndex <listbox.options.length - 1) {listbox.selectedIndex = SelectedIndex + 1;
Dalam kod ini, kita mula -mula merujuk kepada elemen kotak senarai menggunakan IDnya. Kemudian kami menambah aKekunciPendengar acara ke kotak senarai. Di dalam pendengar acara, kami periksa sama ada kunci yang ditekan adalah kekunci anak panah atas atau bawah. Sekiranya ia adalah kunci anak panah dan ada item di atas yang dipilih sekarang, kami memindahkan pemilihan. Jika ia adalah kunci anak panah dan ada item di bawah yang sedang dipilih, kami memindahkan pemilihan ke bawah.
Sekarang, mari kita bincangkan mengenai acara utama Enter. Apabila pengguna menekan kekunci Enter semasa item dalam kotak senarai dipilih, anda mungkin ingin melakukan beberapa tindakan, seperti membuka pandangan terperinci mengenai item yang dipilih atau melakukan carian berdasarkan nilai yang dipilih. Berikut adalah cara anda dapat mengendalikan acara utama Enter:
listBox.AddEventListener ('keydown', function (event) {if (event.key === 'enter') {const dipilihIndex = listbox.selectedIndex; constedValue = listBox.Options [SELECTEDIndex] .value; //
Dalam kod ini, kami sekali lagi menambah aKekunciPendengar acara ke kotak senarai. Di dalam pendengar acara, kami periksa sama ada kunci yang ditekan adalah kekunci Enter. Sekiranya, kami mendapat indeks item yang dipilih dan kemudian dapatkan nilai item itu. Anda kemudian boleh menggunakan nilai ini untuk melakukan apa sahaja tindakan yang anda perlukan.


Pengendalian Acara Papan Kekunci Lanjutan
Sebagai tambahan kepada kunci anak panah asas dan masukkan acara utama, terdapat beberapa peristiwa keyboard lain yang mungkin anda ingin mengendalikan untuk pengalaman pengguna yang lebih baik. Sebagai contoh, anda mungkin mahu mengendalikan kunci halaman dan halaman ke bawah untuk membolehkan pengguna dengan cepat menatal melalui kotak senarai.
Berikut adalah cara anda dapat mengendalikan halaman ke atas dan halaman ke bawah:
listbox.addeventListener ('keydown', function (event) {if (event.key === 'pageup') {const visibleItems = 10; // bilangan item yang boleh dilihat dalam kotak senarai constedIndex = listbox.celectedIndex; listbox.selectedIndex = 0; listbox.selectedIndex = listbox.options.length - 1;
Dalam kod ini, kami menambah aKekunciPendengar acara ke kotak senarai dan periksa sama ada kekunci yang ditekan adalah halaman Up atau Page Down. Jika ia adalah kunci halaman, kami memindahkan pemilihan dengan bilangan item yang kelihatan dalam kotak senarai. Jika ia adalah kunci ke bawah, kami memindahkan pemilihan ke bawah dengan bilangan item yang kelihatan.
Mengendalikan pintasan papan kekunci lain
Anda juga mungkin mahu melaksanakan beberapa pintasan papan kekunci tersuai untuk kotak senarai anda. Sebagai contoh, anda boleh membenarkan pengguna dengan cepat memilih item pertama dalam senarai dengan menekan kekunci rumah, dan item terakhir dengan menekan kekunci akhir.
Berikut adalah cara anda dapat mengendalikan kunci rumah dan akhir:
listbox.adDeventListener ('keydown', function (event) {if (event.key === 'home') {listbox.selectedIndex = 0;} else if (event.key === 'end') {listbox.selectedIndex = listbox.length - 1;}});
Dalam kod ini, kami menambah aKekunciPendengar acara ke kotak senarai dan periksa sama ada kunci yang ditekan adalah kunci rumah atau akhir. Jika ia adalah kunci rumah, kami menetapkan indeks yang dipilih kepada 0, yang memilih item pertama dalam senarai. Jika ia adalah kunci akhir, kami menetapkan indeks yang dipilih ke item terakhir dalam senarai.
Mengintegrasikan dengan komponen lain
Kadang -kadang, anda mungkin mahu mengintegrasikan kotak senarai dengan komponen lain pada halaman anda berdasarkan peristiwa papan kekunci. Sebagai contoh, anda boleh mempunyai medan input teks di mana pengguna boleh menaip istilah carian, dan apabila mereka menekan Enter semasa kotak senarai mempunyai tumpuan, anda melakukan carian menggunakan item yang dipilih dalam kotak senarai dan teks dalam medan input.
Inilah contoh bagaimana anda dapat mencapai ini:
<input type = "text" id = "searchInput"> <pilih id = "myListBox"> <option value = "option1"> Option 1 </option> <option value = "option2"> Option 2 </option> <option value = "option3"> Option 3 </option> </Select>
const listBox = document.getElementById ('MyListBox'); const searchInput = document.getElementById ('SearchInput'); listBox.AddEventListener ('keydown', function (event) {if (event.key === 'enter') {const selectedIndex = listbox.selectedIndex; constedValue = listBox.Options [SELECTEDINDEX] Searchterm);
Dalam kod ini, kita mula -mula mendapatkan rujukan ke kotak senarai dan medan input carian. Kemudian kami menambah aKekunciPendengar acara ke kotak senarai. Apabila pengguna menekan kekunci Enter, kami mendapat nilai yang dipilih dari kotak senarai dan teks dari medan input carian, dan kemudian kami boleh menggunakan nilai -nilai ini untuk melakukan carian.
Menggunakan perpustakaan pihak ketiga
Jika anda tidak mahu menulis semua kod pengendalian acara keyboard dari awal, terdapat beberapa perpustakaan pihak ketiga yang dapat membantu anda. Sebagai contoh, JQuery mempunyai banyak fungsi berguna untuk mengendalikan acara, termasuk acara papan kekunci.
Berikut adalah cara anda boleh menggunakan jQuery untuk mengendalikan kekunci anak panah dan masukkan acara utama:
<! Doctype html> <html> <head> <script src = "https://code.jquery.com/jquery-3.6.0.min.js"> value = "option3"> opsyen 3 </option> </pilih> <cript> $ ('#myListBox'). keydown (function (event) {if (event.key === 'arrowup') {constedIndex = $ (this) .prop ('terpilih') (event.key === 'arrowdown') {constedIndex = $ (ini) .prop ('SelectedIndex'); $ (ini) .prop ('terpilih'); </script> </body> </html>
Dalam kod ini, kami mula -mula memasukkan perpustakaan jQuery dalam fail HTML kami. Kemudian kami menggunakan jQuery untuk memilih kotak senarai dan tambahkan aKekuncipendengar acara untuknya. Di dalam pendengar acara, kami mengendalikan kunci anak panah dan memasukkan peristiwa utama dengan cara yang sama seperti yang kita lakukan dalam contoh vanila JavaScript.
Kesimpulan
Mengendalikan acara papan kekunci pada kotak senarai adalah bahagian penting dalam menyediakan pengalaman pengguna yang baik. Dengan mengendalikan acara asas seperti Kekunci Arrow dan masukkan Key, serta acara yang lebih maju seperti Page Up, Page Down, Home, and End Keys, anda boleh membuat kotak senarai anda lebih mesra pengguna. Anda juga boleh mengintegrasikan kotak senarai dengan komponen lain di halaman anda dan menggunakan perpustakaan pihak ketiga untuk memudahkan proses pembangunan.
Jika anda berada di pasaran untuk kotak senarai berkualiti tinggi, kami berada di sini untuk membantu! Kami menawarkan pelbagai produk kotak senarai yang direka untuk memenuhi keperluan khusus anda. Sama ada anda memerlukan kotak senarai mudah untuk projek kecil atau yang lebih kompleks untuk aplikasi skala besar, kami telah mendapat anda dilindungi.
Sekiranya anda berminatPengapit sensor,Kes air ultrasonik, atauBadan paip, Kami juga boleh menyediakan produk dan penyelesaian yang berkaitan.
Jika anda ingin membincangkan keperluan anda atau mendapatkan sebut harga, jangan ragu untuk menghubungi kami. Kami tidak sabar -sabar untuk bekerjasama dengan anda dan membantu anda mencari kotak senarai yang sempurna untuk projek anda.
Rujukan
- Dokumentasi JavaScript di Dokumen Web MDN
- Dokumentasi rasmi jQuery
