U bevindt zich hier: Forum » Tutorials » [JS] Toetsenbord events
   Actief Topic: [JS] Toetsenbord events

Vorige ( 1 ) Volgende

vlerknozem
Admin
avatar
# Gepost op 03-01-2010 20:54
Bewerkt door vlerknozem op 09-01-2010 21:38


In deze mini tutorial vertel ik hoe je in javascript gebruikers iets kan laten doen met het toetsenbord. In javascript kan je events opvangen. Events zijn gebeurtenissen zoals een muisklik of een toets dat ingedrukt wordt, etc. Aan elke event zit weer informatie gekoppelt. De event die wij nu gaan opvangen is de 'onkeydown' event. Dus als men een toets van het toestenbord naar beneden duwt.

Om nu erachter te komen welke toest men heeft ingeduwt gaan we kijken naar de keycode. Dit is informatie die dus mede wordt doorgegeven met de event. Elke toets heeft zo zijn eigen code.


Plain | Plain new window | Javascript code:
  1. // We sturen de onkeydown events door naar de functie checkKeycode
  2. document.onkeydown = checkKeycode
  3.  
  4. // De functie checkKeycode krijgt een variabele mee, de informatie over de event.
  5. function checkKeycode(e) {
  6.     // We declareren even een lege variabele
  7.     var keycode;
  8.  
  9.     // Kijken of we de keycode kunnen opvragen (in elke browser werkt het weer anders)
  10.     if (window.event) keycode = window.event.keyCode;
  11.     else if (e) keycode = e.which;
  12.  
  13.     // Keycode alerten
  14.     alert(keycode);
  15.  
  16.     return false;
  17. }

De return false in de functie zorgt ervoor dat de browser niks meer doet met de betreffende toets. Druk je bijvoorbeeld op F1, dan wordt normaal een hulpvenster van de browser geopend. Door de return false wordt dat dus voorkomen. Met bovenstaande functie kan je meteen de keycode opzoeken van een bepaalde toets.

Als je nu een alert wil wanneer men op enter druk kan je dus dit gebruiken:
Plain | Plain new window | Javascript code:
  1. // We sturen de onkeydown events door naar de functie checkKeycode
  2. document.onkeydown = checkKeycode
  3.  
  4. // De functie checkKeycode krijgt een variabele mee, de informatie over de event.
  5. function checkKeycode(e) {
  6.     // We declareren even een lege variabele
  7.     var keycode;
  8.  
  9.     // Kijken of we de keycode kunnen opvragen (in elke browser werkt het weer anders)
  10.     if (window.event) keycode = window.event.keyCode;
  11.     else if (e) keycode = e.which;
  12.  
  13.     // Als de keycode 13 is, alert
  14.     if(keycode == 13) {
  15.         alert("Je hebt de enter toets ingedrukt");
  16.     }
  17.  
  18.     return false;
  19. }


Willen we nu meer keycodes gebruiken dan kunnen we het beste een switch gebruiken.

Plain | Plain new window | Javascript code:
  1. // We sturen de onkeydown events door naar de functie checkKeycode
  2. document.onkeydown = checkKeycode
  3.  
  4. // De functie checkKeycode krijgt een variabele mee, de informatie over de event.
  5. function checkKeycode(e) {
  6.     // We declareren even een lege variabele
  7.     var keycode;
  8.  
  9.     // Kijken of we de keycode kunnen opvragen (in elke browser werkt het weer anders)
  10.     if (window.event) keycode = window.event.keyCode;
  11.     else if (e) keycode = e.which;
  12.  
  13.     switch(keycode) {
  14.         case 32:
  15.             alert("Auw! Niet zo hard slaan op de spatiebalk! Dat doet pijn :(");
  16.             break;
  17.         case 13:
  18.             alert("Je hebt de enter toets ingedrukt");
  19.             break;
  20.         default:
  21.             alert(keycode);
  22.             break;
  23.     }
  24.  
  25.     return false;
  26. }

Lees de forum regels

superkluns
Tester
avatar
# Gepost op 07-01-2010 17:09
Bewerkt door superkluns op 07-01-2010 17:12


handige tutorial, die ga ik zeker nog wel een keertje gebruiken (voor een één of ander ideetje dat ooit een keer in me opgekomen is:P)
ik heb wel nog 2 toevoegingen:
1) misschien wel handig om een lijst te geven met alle keycode's en bijbehorende toets. Waarschijnlijk is dit heel makkelijk op te zoeken op internet, maar toch.. het hoort er eigenlijk wel bij vind ik, of in elk geval een link. (ja, ik ben lui, ik weet het:P:P)
EDIT: ik zie dat er ook een mogelijkheid bestaat om door middel van uitproberen zelf het lijstje samen te stellen, maat daar ben ik eigenlijk nog steeds te lui voor (neehoor, ik doe het wel:P)
2) voor de beginners onder ons die niet bekent zijn met de switch-functie is het misschien handig om er op te attenderen als je in je laatste voorbeeld heel veel toetsen wil controleren, dat je die kan switchen. het scheelt ruimte/typewerk en het wordt overzichtelijker/makkelijker

Maar voor de rest een prima tut

vlerknozem
Admin
avatar
# Gepost op 09-01-2010 21:39


Puntje 1 heb je al ge-edit. Puntje 2 heb ik erin verwerkt. Bedankt voor de reactie [[party]]

Lees de forum regels

Vorige ( 1 ) Volgende

U moet aangemeld zijn om een reactie te kunnen plaatsen.

Indien u nog geen account heeft kunt u zich hier registreren.



© copyright 2009/2010 WebProjects 1.02 - Template van Sebastaan Franken