Ich versuche, Pfeiltasten in jQuery zu erfassen, aber es werden keine Ereignisse ausgelöst.
$(function(){
$('html').keypress(function(e){
console.log(e);
});
});
Dies generiert Ereignisse für alphanumerische Schlüssel, aber Löschen, Pfeiltasten usw. erzeugen kein Ereignis.
Was mache ich falsch, um diese nicht zu erfassen?
javascript
jquery
keypress
RedBassett
quelle
quelle
$(document).keydown(function(e) { console.log(e.keyCode); });
Tastendruckereignisse erkennen Pfeiltasten, jedoch nicht in allen Browsern. Es ist also besser, Keydown zu verwenden.
Dies sind Schlüsselcodes, die Sie in Ihrem Konsolenprotokoll erhalten sollten:
quelle
keypress
zeigt mir 40 und 38 genau wiekeydown
.Sie können überprüfen, ob eine Pfeiltaste gedrückt wird durch:
$(document).keydown(function(e){ if (e.keyCode > 36 && e.keyCode < 41) alert( "arrowkey pressed" ); });
jsfiddle Demo
quelle
left = 37,up = 38, right = 39,down = 40 $(document).keydown(function(e) { switch(e.which) { case 37: $( "#prev" ).click(); break; case 38: $( "#prev" ).click(); break; case 39: $( "#next" ).click(); break; case 40: $( "#next" ).click(); break; default: return; } e.preventDefault();
});
quelle
Bitte beziehen Sie sich auf den Link von JQuery
http://api.jquery.com/keypress/
Es sagt
Das heißt, Sie können bei Pfeilen keinen Tastendruck verwenden.
quelle
$(document).on( "keydown", keyPressed); function keyPressed (e){ e = e || window.e; var newchar = e.which || e.keyCode; alert(newchar) }
quelle