Kako podnijeti događaje na tastaturi na popisu?

Jun 05, 2025Ostavi poruku

Hej tamo! Kao dobavljač popisa, imao sam svoj pravi dio iskustava koja se bave svim vrstama pitanja koja se odnose na popis popisa. Jedan od uobičajenih problema koje su se korisnici često suočavaju za rukovanje događajima na tastaturi na popisu. U ovom blogu podijelit ću neke savjete i trikove o tome kako se efikasno riješiti događajima na tastaturi na popisu.

Prvo, da shvatimo zašto su važni rukovanje događajima na tastaturi na popisu. U mnogim aplikacijama popis se koriste za prikaz popisa stavki, a korisnici moraju biti u mogućnosti da se kreću kroz ove stavke pomoću tastature. Na primjer, možda bi željeli koristiti tipke sa strelicama gore i dolje za odabir različitih stavki ili tipku Enter za izvođenje akcije na odabranoj stavci. Bez odgovarajuće rukovanja događajima na tastaturi, korisničko iskustvo može biti zaista frustrirajuće.

Osnovna rukovanje događajima na tastaturi

Najosnovniji događaji na tastaturi koje želite podnijeti za popis popis su tipke sa strelicama (gore-dolje) i tipk u Enter. Započnimo sa tipkama sa strelicama.

Kada korisnik pritisne tipku sa strelicom gore, hteo ćete pomaknuti odabir po jednu stavku u okvir za listu. Slično tome, kada pritisnete tipku sa strelicom prema dolje, hteo ćete pomaknuti izbor niz jednu stavku. Evo jednostavnog primjera kako to možete postići u JavaScript-u:

Const Listbox = Document.getelementByid ('MyListbox'); listbox.addeventlistener ('tipka', funkcija (događaj) {if (događaj)) {cons odabranaindex = listbox.selectedIndex = 1;}} drugo ako (Constbox.Seldex = listbox.selectedIndex; ako (odabrani popis <listbox.options.length - 1) {listbox.selectedIndex = SecenIndex + 1;}}});

U ovom kodu prvo se upućujemo na element popisa za popis pomoću svog ID-a. Onda dodajemo aključSlušatelj događaja na okvir za listu. Unutar slušatelja događaja provjeravamo je li tipka koji je pritisnut tipkom gore ili dolje. Ako je to tip sa strelicom gore i postoji predmet iznad trenutno odabranog, pomičemo odabir gore. Ako je to tip sa strelicom prema dolje i postoji predmet ispod trenutno odabrane, pomičemo odabir.

Sada razgovarajmo o enter ključnom događaju. Kada korisnik pritisne tipku ENTER dok je odabrana stavka u okviru liste, možda biste željeli izvesti neku akciju, poput otvaranja detaljnog prikaza odabrane stavke ili izvršavanje pretraživanja na osnovu odabrane vrijednosti. Evo kako možete podnijeti događaj tipke Enter:

listbox.addeventlistener ('tipka', funkcija (događaj) {if (enget.key === Const.SelectedIndex = listbox.esectedIndex = listbox.options_Value; // Izvršite određenu akciju s odabranom vrijednosti ('odabrana vrijednost:', odabrana vrijednost);}});

U ovom su kodu ponovo dodali aključSlušatelj događaja na okvir za listu. Unutar slušatelja događaja provjeravamo je li tipka koja je pritisnuta tipka za unos. Ako jeste, dobivamo indeks odabranog predmeta, a zatim dobijemo vrijednost te stavke. Zatim možete koristiti ovu vrijednost za izvođenje bilo koje radnje koje su vam potrebne.

Pipe Body0357

Napredna rukovanja na tastaturi

Pored osnovnog tastera sa strelicom i unesite ključne događaje, postoje neki drugi događaji na tastaturi koje biste mogli da se žele nositi za poboljšano korisničko iskustvo. Na primjer, možda biste željeli da podnesete tipke za page i Page Down da biste korisniku omogućili brzo pomicanje kroz popis liste.

Evo kako možete podnijeti tipke za page i tipke Page:

listbox.addeventlistener ('tipka', funkcija (događaj) {if (događaj. "Pageup") {Const VisibleITems = 10; // Broj vidljivih predmeta u okviru Const SecalIndex = IF (listbox.SelectedIndex = IzuzetiIndex - visibleitems;} else {listbox.selectedIndex = 0;}} drugo ako (Event.Keywn === 'PageDown') {const vidiitems = 10; // Broj vidljivih predmeta u Const-u Const SecalIndex; ako (IsecenX.SecteMidex = ElseIndex + Visibleems;} Else {listbox.selectedex = listbox.options.length - 1;}}});

U ovom kodu dodajemo aključSlušatelj događaja na okvir za listu i provjerite je li tipka koja je pritisnuta tipkasta stranica ili tipka prema dolje. Ako je to tipka Page Up, odabiramo odabir prema broju vidljivih stavki u okviru liste. Ako je to tipka za page, odabir pomeramo odabir prema broju vidljivih predmeta.

Rukovanje ostalim prečacima na tastaturi

Također biste željeli da implementirate neke prečice prilagođene tipkovnice za svoju popis liste. Na primjer, mogli biste omogućiti korisniku da brzo odabere prvu stavku na popisu pritiskom na tipku za kućnu tipku i zadnju stavku pritiskom na tipku za kraj.

Evo kako možete podnijeti kućni i krajnji tasteri:

listbox.addeventlistener ('tipka', funkcija (događaj) {if (event.y == = 0;} drugo ako (Eventbox.SectectedIndex = listbox.options.length - 1;}});

U ovom kodu dodajemo aključSlušatelj događaja na okvir za listu i provjerite je li tipka koji je pritisnut je kućni ili završni ključ. Ako je to kućni ključ, postavili smo odabrani indeks na 0, koji odabere prvu stavku na popisu. Ako je tip ključa, postavili smo odabrani indeks na zadnju stavku na popisu.

Integriranje sa ostalim komponentama

Ponekad možda želite integrirati okvir za listu s ostalim komponentama na stranici na osnovu događaja na tastaturi. Na primjer, možete imati polje za unos teksta na kojem korisnik može upisati pojam za pretraživanje, a kada pritisnete Enter dok se popis lista fokusira, izvršite pretragu pomoću odabrane stavke u polje za popis i tekst u polju za unos.

Evo primjera kako to možete postići:

<ulaz tip = "SectiveInput"> <Selection ID = "MyListBox"> <option1 "> opcija 1 </ option> <option> <opcija> <opcija"> Opcija 3 </ ° Clear> </ Odaberite>
Const Listbox = Document.getelementByid ('MyListbox'); Const SearchInput = Document.getelementByid ('SearchInput'); listbox.addeventlistener ('tipka', funkcija (događaj) {if (enget.key == ConstBolectectedIndex = listbox.options_value = listbox.options; // izvrši potragu za odabranom vrijednosti i konzola za pretraživanje ("Traženje za:") ",", ",", ",", potraživač " });

U ovom kodu prvo dobijamo reference na okvir za listu i polje za unos pretraživanja. Onda dodajemo aključSlušatelj događaja na okvir za listu. Kada korisnik pritisne tipku Enter, dobivamo odabranu vrijednost iz okvira popisa i teksta iz polja za unos pretraživanja, a zatim možemo koristiti ove vrijednosti za izvedbu pretraživanja.

Koristeći treće - knjižnice za zabavu

Ako ne želite napisati sav kôd za rukovanje tipkovnicom od nule, postoje neke treće - party biblioteke koje vam mogu pomoći. Na primjer, jQuery ima puno korisnih funkcija za rukovanje događajima, uključujući događaje na tastaturi.

Evo kako možete koristiti jQuery za rukovanje tipkom sa strelicom i unesite ključne događaje:

<! DocType HTML> <HTML> <Script SRC = "https://code.jquery.com/jquery-3.6.0.min.js"> </ head> "> </ option1"> opcija 1 </ option>> opcija 2 </ option> <option vrednost = "opcija3"> opcija 3 </ Odaberite> <Script> $ ('# mylistbox'). Keydown (funkcija (događaj) {if (ovaj) .Prop (ovaj) .Prop (ovo). (Ovo). (Ovo). (Ovo).) 1);}} drugo ako (Const.Kuwdown ') {cons odabraniIndex = $ (ovo) .Prop ('SecenIndex'); ako (ovo) .Find ('opcija'). Dužina - 1) {$ (ovo). (Eventuri ') {Con Const SecenerIndex = $ (ovo) .Prop (' SecenIndex '); $ (ovo) .Find ('opcija'). EQ (SecenIndex) .Val (); console.log ('Odabrana vrijednost:', odabranoValue);}}); </ script> </ karoserija> </ html>

U ovom kodu prvo uključujemo jQuery biblioteku u našoj HTML datoteci. Zatim koristimo jQuery za odabir okvira za listu i dodavanje aključSlušatelj događaja na njega. Unutar slušatelja događaja obrađujemo tipku sa strelicom i unosimo ključne događaje na sličan način kao što smo i radili u primjerima vanilije JavaScript.

Zaključak

Rukovanje tipkovnicom na popisu popis važan je dio pružanja dobrog korisnika iskustva. Rukovanjem osnovnim događajima poput tipki sa strelicama i unosite tipku, kao i naprednije događaje poput stranice gore, stranice dolje, dole, a krajnje tipke možete napraviti svoju popis korisnika više korisniku - prijateljski. Takođe možete integrirati okvir sa drugim komponentama na vašoj stranici i koristiti treće - party biblioteke za pojednostavljenje razvoja.

Ako ste na tržištu za visoke kutije za listu kvaliteta, tu smo da pomognemo! Nudimo širok spektar proizvoda za popis koji su dizajnirani za ispunjavanje vaših specifičnih potreba. Bilo da vam je potreban jednostavan okvir za popis za mali projekt ili složeniji za veliku aplikaciju - skaliranje, pokrili smo vas.

Ako vas zanimaStezaljka senzora,Ultrazvučna futrola za vodu, iliCijevi tijelo, možemo pružiti i srodne proizvode i rješenja.

Ako želite razgovarati o vašim potrebama ili ćete dobiti ponudu, ne ustručavajte se pružiti nam. Radujemo se što ćemo sarađivati ​​s vama i pomagati vam da pronađete savršenu popis popisa za svoj projekt.

Reference

  • JavaScript dokumentacija na MDN web dokumentima
  • JQuery Službena dokumentacija