Prüfen ob ctrl gedrückt wurde bei mousedown
programmer
- javascript
Hallo zuammen
Ich habe eine onmousedown-Funktion. In dieser möchte ich auslesen, ob während dem "Klicken" die Ctrl-Taste gedrückt wurde. Geht das irgendwie? Wenn man mit window.event arbeitet, kann man die Ctrl-Taste nicht auslesen, da die Funktion onmousedown nichts mit Tastatureingaben zu tun hat. Kann man das aber trotzdem bewerkstelligen?
Herzlichen Dank
Hi,
Ich habe eine onmousedown-Funktion. In dieser möchte ich auslesen, ob während dem "Klicken" die Ctrl-Taste gedrückt wurde. Geht das irgendwie? Wenn man mit window.event arbeitet, kann man die Ctrl-Taste nicht auslesen, da die Funktion onmousedown nichts mit Tastatureingaben zu tun hat.
Dann hast du halt noch einen zweiten Event, nämlich den, dass eine Taste gedrückt wurde - also reagiere auch auf diesen, und stelle fest, ob sie "gleichzeitig" passieren. ("Gleichzeitig" in Anführungszeichen, weil eine gleichzeitige Verarbeitung in JavaScript natürlich nicht möglich ist - also schauen, ob beide zeitnah erfolgen.)
MfG ChrisB
Dann hast du halt noch einen zweiten Event, nämlich den, dass eine Taste gedrückt wurde - also reagiere auch auf diesen, und stelle fest, ob sie "gleichzeitig" passieren.
Warum so umständlich? Dann doch eher ein Flag setzen, wenn die Taste gedrückt bzw. losgelassen wurde:
ctrlPressed = false
document.onkeyup = document.onkeydown = function (e) {
e = e || window.event;
if (e.keyCode == 17) {
ctrlPressed = (e.type == 'keydown');
}
};
document.onclick = function () {
if (ctrlPressed) {
alert("control click!");
}
};
Wobei e.ctrlKey natürlich noch einfacher ist.
Mathias
Wenn man mit window.event arbeitet, kann man die Ctrl-Taste nicht auslesen, da die Funktion onmousedown nichts mit Tastatureingaben zu tun hat.
Das stimmt nicht. eventobjekt.ctrlKey ist auch bei Mausevents verfügbar.
document.onclick = function (e) {
e = e || window.event;
if (e.ctrlKey) {
alert("control click!");
}
};
Mathias
Hallo,
e = e || window.event;
Was bedeutet diese Zeile? e ist gleich e wenn e existiert, sonst ist es window.event? ( = Browserweiche?) PHP kennt sowas nicht, oder? Bzw. eigentlich logisch, weil es kennt ja auch keine Browserweichen (;-).
Gruß
jobo
e = e || window.event;
Was bedeutet diese Zeile? e ist gleich e wenn e existiert, sonst ist es window.event? ( = Browserweiche?)
Ja. Es ist dasselbe wie if (!e) e = window.event;
http://molily.de/js/einbindung.html#event-objekt
PHP kennt sowas nicht, oder?
Nein, weil der ||-Operator in PHP nicht den Operand zurückgibt, der in Boolean umgewandelt true ergibt, sondern nur true oder false.
Der or-Operator z.B. in Python und Ruby verhält sich hingegen wie in JavaScript.
Mathias
Hallo Mathias,
Nein, weil der ||-Operator in PHP nicht den Operand
den _ersten_ Operand vermutlich, der true zurückgeben würde, oder?
Gruß
jobo
den _ersten_ Operand vermutlich, der true zurückgeben würde, oder?
Ja. Wenn bei a || b beide Operanden true ergeben, gibt JavaScript den ersten, also a zurück.
Mathias
Der or-Operator z.B. in Python und Ruby verhält sich hingegen wie in JavaScript.
und in Perl, was das Verhalten in PHP seltsam macht, da dieses ja von Perl abstammt
Struppi.