2014-02-26 5 views

Antwort

23

In neueren Browsern, die DOM3 unterstützen, können Sie event.location verwenden, um den Standort zu überprüfen.

In the DOM3 spec gibt es 4 Konstanten für Ort definiert, DOM_KEY_LOCATION_STANDARD, DOM_KEY_LOCATION_LEFT, DOM_KEY_LOCATION_RIGHT und DOM_KEY_LOCATION_NUMPAD.

In diesem Fall können Sie tun:

if (event.location === KeyboardEvent.DOM_KEY_LOCATION_LEFT){ 

} else if (event.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT){ 

} 
+0

Kannst du mir den vollen Code zeigen? Ich habe nicht, wie man es ausführt –

+0

Sie würden dies in einem Keyboard-Event-Handler im Browser haben, wo das erste Argument für die Event-Handler-Funktion ist "Ereignis". – loganfsmyth

+0

Es ist in Ordnung. Ich habe es anders gemacht. http://stackoverflow.com/questions/40320597/detect-left-or-right-shift-key-in-keypress-jquery/40320730?noredirect=1 –

2

Internet Explorer ist in der Lage mit der Shiftleft Eigenschaft links und rechts Verschiebung zu unterscheiden:

shiftLeft property (event)

Andernfalls werden sie nicht zu unterscheiden sind.

+0

Es gibt einige Unterschiede. Überprüfen Sie das Beispiel auf Plunkr in dieser Frage: http://stackoverflow.com/questions/30218752/how-to-detect-shift-right-arrow-some-other-key-in-angular Derselbe Code funktioniert gut mit linke Schicht und funktioniert nicht mit Rechtsverschiebung – gandra404

0

Der einfachste Weg, es

$(document).ready(function(){ 
 
    $("html").keydown(function(e) { 
 

 
     if (e.shiftKey) { 
 
     if (event.location == 1) console.log('left shift'); 
 
     if (event.location == 2) console.log('right shift'); 
 
     } 
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Hinweis zu tun: Sie haben die innen weiß Raum klicken, wenn Sie Code-Snippet ausführen, um die Tastatur zu aktivieren. Dies wird in Chrome und Safari getestet.

Verwandte Themen