jquery: keyDown, keyup, kleine Schnipsel, warum ist das nicht funktioniert?
Frage
Warum ist das nicht funktioniert?
var holdingctrl = false;
$(document).keydown("q",function(e) {
if(holdingctrl == true)
alert("Holding CTRL and pressing Q: Success.");
e.preventDefault();
});
$(document).keyup("q",function(e) {
holdingctrl == false
});
Dieses Beispiel unten funktioniert gut, aber was mache ich falsch oben?
$(document).keyup("q",function(e) {
alert("ONLY pressing Q: Success.");
});
Lösung
Sie benötigt einen Weg, um festzustellen, ob Steuerung zur Zeit gedrückt wurde (e.ctrlKey) - Dies sollte für Sie arbeiten:
$(document).keyup(function(e)
{
if (e.ctrlKey && e.keyCode == 81)
{
alert("CTRL+Q Pressed");
}
});
Andere Tipps
Hängt davon ab, was Sie versuchen zu erreichen.
Paar Hinweise:
- die Ereignisdaten Sie vorbei sind sollte ein Objekt anstelle eines einzigen Zeichen sein.
- die
keyup
Handler tut nichts mit dem==
Vergleich. Sie haben wahrscheinlich bedeutete eine=
Zuordnung zu verwenden.
$(document).keyup( { theChar:"q" }, function(e) {
holdingctrl = false;
});
Ich bin mir nicht ganz sicher, was Sie versuchen, mit diesem Code-Schnipsel zu tun, aber Sie können prüfen, ob ctrl wird unter Verwendung der event.ctrlKey
Eigenschaft gedrückt:
$(document).keydown(function(e) {
if (e.ctrlKey && (e.keyCode == 81)) { // ctrl + q
alert("Pressing Q and ctrl: Success.");
}
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow