So etwas kann den Trick
var pressingEnter = false;
$(document).on({
keydown: function(e) {
if(e.which == 13) {
// enter is being pressed, set true to flag variable
pressingEnter = true;
}
},
keyup: function(e) {
if(e.which == 13) {
// enter is no longer pressed, set false to flag variable
pressingEnter = false;
}
},
click: function() {
if (pressingEnter) {
console.log('click and enter pressed');
}
}
});
BTW: Es gibt keine Notwendigkeit, var code = e.keyCode || e.which;
zu tun, da jQuery für Sie, dass löst. Sie können e.which
in jedem Browser verwenden.
EDIT
Diese Version beliebige Reihenfolge des Schlüssels erlauben sollte gedrückt/Mausklick. Ich gehe davon aus, dass nur der linke Klick erfasst wird. Logic zu handhaben + Mausklick auf keydown
und mousedown
platziert ein (es bewegt keyup
werden könnte und mouseup
wenn macht mehr Sinn)
alert
Geändert von console.log
seit dem ersten verhindert mouseup
Ereignis ausgelöst werden. Heutzutage haben wir hundert bessere Möglichkeiten, den Benutzern eine Nachricht zu zeigen, als integrierte Popup-Meldungen. Ich gehe also davon aus, dass es funktioniert, denn es ist keine Voraussetzung.
var pressingEnter = false;
var clickingMouseButton = false;
$(document).on({
keydown: function(e) {
if(e.which == 13) {
pressingEnter = true;
}
if (clickAndEnterPressing()) {
console.log('click and enter pressed');
}
},
keyup: function(e) {
if(e.which == 13) {
pressingEnter = false;
}
},
mousedown: function(e) {
if (e.which == 1) {
clickingMouseButton = true;
}
if (clickAndEnterPressing()) {
console.log('click and enter pressed');
}
},
mouseup: function(e) {
if (e.which == 1) {
clickingMouseButton = false;
}
}
});
function clickAndEnterPressing() {
return pressingEnter && clickingMouseButton;
}
Flagge der keydown wenn es ENTER (Kennzeichen entfernen auf keyup) ist, und überprüfen Sie die Flagge in Click-Handler. Einige [spezielle Schlüssel können erkannt werden] (http://stackoverflow.com/a/18317134/1169519) auch in einem Click-Handler direkt. – Teemu
Meinst du, dass du auf einen Klick reagieren willst ** während ** die Eingabetaste gedrückt wird? –