molily: Mouse-Event abfangen?

Beitrag lesen

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