Ей там! Като доставчик на кутии с списък имах справедлив дял от опит, който се занимава с всякакви проблеми, свързани с кутиите за списъци. Един от често срещаните проблеми, с които потребителите често се сблъскват, е да обработвате събития на клавиатурата в списъка. В тази публикация в блога ще споделя някои съвети и трикове за това как да се справят ефективно с клавиатурни събития в полето за списък.
Първо, нека разберем защо е важно обработката на събитията в клавиатурата в полето за списък. В много приложения кутиите за списъци се използват за показване на списък с елементи и потребителите трябва да могат да се движат през тези елементи, използвайки клавиатурата. Например, те могат да искат да използват клавишите със стрелки нагоре и надолу, за да изберат различни елементи, или клавиша Enter, за да извършат действие върху избрания елемент. Без подходящо обработка на събитията на клавиатурата, потребителското изживяване може да бъде наистина разочароващо.
Основна работа на събитията на клавиатурата
Най -основните събития на клавиатурата, с които ще искате да се справите за списъчна кутия, са събитията от ключовете на стрелката (нагоре и надолу) и събитието Enter Key. Нека започнем с ключовите събития на Arrow.
Когато потребителят натисне клавиша за стрелка нагоре, ще искате да преместите избора нагоре по един елемент в полето на списъка. По същия начин, когато натиснат клавиша със стрелка надолу, ще искате да преместите селекцията надолу по един елемент. Ето един прост пример за това как можете да постигнете това в JavaScript:
const listbox = document.getElementByID ('myListBox'); listbox.addeventListener ('keydown', функция (събитие) {if (event.key === 'arrowup') {const selectedIndex = listBox.SelectedIndex; if (selectedIndex> 0) {listbox.selectedIndex = selectedIndex - 1;}} else if (event.key === 'arrowdown') {const selectedex = listbox. (selectedindex <listbox.options.length - 1) {listbox.selectedindex = selectedIndex + 1;
В този код първо получаваме препратка към елемента на списъка, използвайки неговия идентификатор. След това добавяме aKeydownСлушател на събитието към полето Списък. Вътре в слушателя на събитието проверяваме дали клавишът, който е натиснат, е клавишът за стрелка нагоре или надолу. Ако това е клавишът за стрелка нагоре и има елемент над избрания в момента, ние преместваме избора нагоре. Ако това е клавишът за стрелка надолу и има елемент под избрания в момента, ние преместваме избора надолу.
Сега, нека поговорим за събитието Enter Key. Когато потребителят натисне клавиша Enter, докато елемент в полето за списъка е избран, може да искате да извършите някакво действие, като отваряне на подробен изглед на избрания елемент или извършване на търсене въз основа на избраната стойност. Ето как можете да се справите с ключовото събитие Enter:
listbox.addeventListener ('keydown', функция (събитие) {if (event.key === 'enter') {const selectedIndex = listBox.SelectedIndex; const selectedValue = listbox.Options [selectedIndex] .Value; // извършване на някакво действие с избраната стойност console.log ('избрана стойност:', selectedvalue);}});
В този код отново добавяме aKeydownСлушател на събитието към полето Списък. Вътре в слушателя на събитието проверяваме дали клавишът, който е натиснат, е ключът Enter. Ако е така, получаваме индекса на избрания елемент и след това получаваме стойността на този елемент. След това можете да използвате тази стойност, за да извършите каквото и да е действие.


Разширено обработка на събитията на клавиатурата
В допълнение към основния ключ за стрелка и въведете ключови събития, има някои други събития на клавиатурата, с които може да искате да се справите за по -подобрено потребителско изживяване. Например, може да искате да обработвате клавишите на страницата нагоре и страницата надолу, за да позволите на потребителя бързо да премине през полето на списъка.
Ето как можете да се справите с клавишите на страницата нагоре и страницата надолу:
listbox.addeventListener ('keydown', функция (събитие) {if (event.key === 'pageUp') {const viebibleTems = 10; // Брой видими елементи в списъка ConstedIndex = listBox.SelectedIndex; if (selectedIndex> = visibleTems) {listboxedIndexex 0; listbox.options.length - 1;
В този код добавяме aKeydownСлушател на събитията към полето Списък и проверете дали ключът, който е натиснат, е клавишът на страницата нагоре или страницата надолу. Ако това е клавишът на страницата нагоре, преместваме избора нагоре по броя на видимите елементи в полето на списъка. Ако това е клавишът на страницата надолу, преместваме избора надолу по броя на видимите елементи.
Работа с други клавишни преки пътища
Можете също така да искате да внедрите някои персонализирани клавиатури за вашия списък. Например, можете да позволите на потребителя бързо да избере първия елемент в списъка, като натиснете клавиша Home и последния елемент, като натиснете клавиша End.
Ето как можете да се справите с ключовете за дома и край:
listbox.addeventListener ('keydown', функция (събитие) {if (event.key === 'home') {listbox.selectedIndex = 0;} else if (event.key === 'end') {listbox.selectedIndex = listbox.options.length - 1;}});
В този код добавяме aKeydownСлушател на събитията към полето Списък и проверете дали ключът, който е натиснат, е ключът за дома или края. Ако това е домашният ключ, ние задаваме избрания индекс на 0, който избира първия елемент в списъка. Ако това е крайният ключ, ние задаваме избрания индекс на последния елемент в списъка.
Интегриране с други компоненти
Понякога може да искате да интегрирате полето на списъка с други компоненти на вашата страница въз основа на събитията на клавиатурата. Например, можете да имате поле за въвеждане на текст, където потребителят може да въведе термин за търсене на търсене, а когато натисне Enter, докато полето на списъка има фокус, извършвате търсене, използвайки избрания елемент в полето на списъка и текста в полето за въвеждане.
Ето пример за това как можете да постигнете това:
<input type = "text" id = "searchInput"> <select id = "mylistbox"> <опция value = "option1"> опция 1 </iption> <value value = "option2"> опция 2 </iption> <опция стойност = "опция3"> Опция 3 </ option> </elect>
const listbox = document.getElementByID ('myListBox'); const searchInput = document.getElementByID ('searchInput'); listBox.addEventListener('keydown', function(event) { if (event.key === 'Enter') { const selectedIndex = listBox.selectedIndex; const selectedValue = listBox.options[selectedIndex].value; const searchTerm = searchInput.value; // Perform a search using the selected value and the search term console.log('Searching for:', selectedvalue, searcherm);
В този код първо получаваме препратки към полето с списъка и полето за въвеждане на търсене. След това добавяме aKeydownСлушател на събитието към полето Списък. Когато потребителят натисне клавиша Enter, получаваме избраната стойност от полето на списъка и текста от полето за въвеждане на търсене и след това можем да използваме тези стойности, за да извършим търсене.
Използване на библиотеки на трети партита
Ако не искате да напишете целия код за обработка на клавиатури от Scratch, има някои библиотеки на трети партита, които могат да ви помогнат. Например, JQuery има много полезни функции за работа с събития, включително събития на клавиатурата.
Ето как можете да използвате jquery, за да се справите с клавиша със стрелка и да въведете ключови събития:
<! Doctype html> <html> <head> <script src = "https://code.jquery.com/jquery-3.6.0.min.js"> </script> </head> <body> <select id = "mylistbox"> option value = "опция1"> опция 1 <///su. value = "option3"> Вариант 3 </Option> </elect> <Script> $ ('#MyListBox'). KeyDown (функция (събитие) {if (event.key === 'arrowup') {const selectedIndex = $ (това) .Prop ('selectedIndex'); if (selectedIndex> 0) {$ (това) .prop ('selectedIndex', selectedex - 1); иначе ако (event.key === 'arrowdown') {const selectedindex = $ (това) .prop ('selectedindex'); $ (това) .prop ('selectedIndex'); </script> </ody> </html>
В този код първо включваме библиотеката на jQuery в нашия HTML файл. След това използваме jQuery, за да изберем полето Списък и да добавим aKeydownСлушател на събитие. Вътре в слушателя на събитието се справяме с клавиша със стрелки и въвеждаме ключови събития по подобен начин, както в примерите на Vanilla JavaScript.
Заключение
Работата с клавиатурни събития в кутия с списък е важна част от осигуряването на добро потребителско изживяване. Чрез обработка на основни събития като клавиши за стрелки и въведете ключ, както и по -разширени събития като Page Up, Page Down, Home и End Keys, можете да направите полето си за списъка по -приятелски - приятелски настроени. Можете също да интегрирате полето Списък с други компоненти на вашата страница и да използвате библиотеки на трети - партия, за да опростите процеса на разработка.
Ако сте на пазара за кутии с високо качество, ние сме тук, за да ви помогнем! Ние предлагаме широка гама от продукти за списъци, които са проектирани да отговарят на вашите специфични нужди. Независимо дали се нуждаете от обикновена кутия за списък за малък проект или по -сложен за голямо приложение, ние ви обхванахме.
Ако се интересувате отСензорна скоба,Ултразвуков воден калъф, илиТяло на тръбата, можем да предоставим и свързани продукти и решения.
Ако искате да обсъдите вашите изисквания или да получите оферта, не се колебайте да се свържете с нас. Очакваме с нетърпение да работим с вас и да ви помогнем да намерите идеалната кутия за списъци за вашия проект.
ЛИТЕРАТУРА
- JavaScript документация на уеб документи MDN
- Официална документация на jQuery
