Wie gehe ich über die Bindung einer Funktion auf die linke und rechte Pfeiltasten in Javascript und / oder jQuery? Ich schaute auf die js-Hotkey-Plugin für jQuery (wickelt die eingebaute Funktion binden, um ein Argument hinzufügen, um bestimmte Tasten zu erkennen), aber es scheint nicht Pfeiltasten zu unterstützen.
Antworten
Zu viele Anzeigen?Eine robuste Javascript-Bibliothek zur Erfassung von Tastatureingaben und eingegebenen Tastenkombinationen. Sie hat keine Abhängigkeiten.
http://jaywcjlove.github.io/hotkeys/
hotkeys('right,left,up,down', function(e, handler){
switch(handler.key){
case "right":console.log('right');break
case "left":console.log('left');break
case "up":console.log('up');break
case "down":console.log('down');break
}
});
Pfeil verhindern nur für ein beliebiges Objekt verfügbar, sonst SELECT, also eigentlich habe ich es nicht auf einem anderen Objekt LOL. aber es kann Pfeil-Ereignis auf Seite und Eingabe-Typ zu stoppen.
Ich habe bereits versucht, Pfeil links und rechts zu blockieren, um den Wert des SELECT-Objekts mit "e.preventDefault()" oder "return false" auf "kepress" "keydown" und "keyup" Ereignis zu ändern, aber es immer noch den Objektwert ändern. aber das Ereignis immer noch sagen Sie, dass Pfeil gedrückt wurde.
Ich kam hier auf der Suche nach einem einfachen Weg, damit der Benutzer, wenn er auf eine Eingabe fokussiert ist, die Pfeiltasten verwenden kann, um eine numerische Eingabe +1 oder -1 zu machen. Ich habe nie eine gute Antwort gefunden, sondern machte den folgenden Code, der zu arbeiten scheint groß - machen diese Website-weite jetzt.
$("input").bind('keydown', function (e) {
if(e.keyCode == 40 && $.isNumeric($(this).val()) ) {
$(this).val(parseFloat($(this).val())-1.0);
} else if(e.keyCode == 38 && $.isNumeric($(this).val()) ) {
$(this).val(parseFloat($(this).val())+1.0);
}
});