Mouse-Event abfangen?
kozi
- javascript
0 Stefano Albrecht0 kozi
0 molily
Gibt es eine Möglichkeit über javascript ein Mouse-Event komplett abzufangen?
Problem: Durch einen Klick auf ein Listenelement in einer Select-Box soll ein Javascript-Funktion aufgerufen werden. Dabei soll aber nicht das Element selber ausgewählt werden. Die select-Liste soll sich nicht schliessen sondern einfach auf dem Menüpunkt stehen bleiben. Erst bei einem erneutem Klick soll dann die Standardfunktion des Klicks ausgeführt werden.
Ist das möglich?
Hallo Kozi ;~)
Gibt es eine Möglichkeit über javascript ein Mouse-Event komplett abzufangen?
Ja, mit dem globalen Event-Handler (des Dokumentes).
Problem: Durch einen Klick auf ein Listenelement in einer Select-Box soll ein Javascript-Funktion aufgerufen werden. Dabei soll aber nicht das Element selber ausgewählt werden. Die select-Liste soll sich nicht schliessen sondern einfach auf dem Menüpunkt stehen bleiben. Erst bei einem erneutem Klick soll dann die Standardfunktion des Klicks ausgeführt werden.
dblclick? (Doppel-Klick) Das ist aber denke ich unsinnig. Wollte es nur erwähnt haben ;-)
Du kannst die Select-Liste auch so darstellen, dass sie nicht als Drop-Down-Menü ausfährt, sondern die Form eines Textfeldes annimmt. In diesem Fall verschwinden die Menüpunkte nicht nach einmaligem Klick.
Mit freundlichen Grüßen
Stefano Albrecht
Gibt es eine Möglichkeit über javascript ein Mouse-Event komplett abzufangen?
Ja, mit dem globalen Event-Handler (des Dokumentes).
Wie genau geht das?
- Du kannst die Select-Liste auch so darstellen, dass sie nicht als Drop-Down-Menü ausfährt, sondern die Form eines Textfeldes annimmt. In diesem Fall verschwinden die Menüpunkte nicht nach einmaligem Klick.
Die Liste ist zu lang dafür.
Wie genau geht das?
Erkundige Dich nach document.events.
Mit freundlichen Grüßen
Stefano Albrecht
Hallo,
Gibt es eine Möglichkeit über javascript ein Mouse-Event komplett abzufangen?
Ja, aber das wird dir nicht bei deinem Problem weiterhelfen.
Komplettes Abfangen (siehe Archiv):
document.onclick = abfangen;
function abfangen (e) {
if (!e)
e = window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
Aber das willst du offenbar gar nicht. Dadurch würde das Dokument theoretisch überhaupt nicht auf Mausklicks reagieren. Viele Standardaktionen sind aber offenbar sowieso nicht verhinderbar (obwohl cancelable auf true steht). Das heißt, mit dem Script lässt sich das Ändern der gewählten Option einer Dropdown-Box nicht verhindern.
Problem: Durch einen Klick auf ein Listenelement in einer Select-Box soll ein Javascript-Funktion aufgerufen werden. Dabei soll aber nicht das Element selber ausgewählt werden. Die select-Liste soll sich nicht schliessen sondern einfach auf dem Menüpunkt stehen bleiben.
Das geht nicht. Erstens wird der click-Event nach dem change-Event gefeuert, da ist die Liste schon längst zugeklappt. Aber auch mit mouseup geht es nicht, denn das Verhindern der Standardaktion über preventDefault() zeigt keine Wirkung (siehe oben). Der Internet Explorer feuert nicht einmal Maus-Events für option-Elemente.
Denke dir eine Alternative aus, vielleicht ganz ohne select-Formularfelder.
Erst bei einem erneutem Klick soll dann die Standardfunktion des Klicks ausgeführt werden.
Du kannst höchstens eine Logik bauen, die Änderung der Auswahl wieder rückgängig macht und sie erst dann zulässt, wenn zweimal dieselbe Option gewählt wurde. Das wird aber ziemlich umständlich und verwirrend für den Anwender.
Mathias