cartman1984: window.event bei Mouseover

Hallo alle zusammen,

ich verzweifle gerade mal wieder an meinen EventHandlern.

An einigen Stellen definiere ich EventListener direkt am HTML-Objekt, da die Objekte dynamisch generiert werden und es so unkomplizierter ist.

Allerdings rufe ich dort mehrere Funktionen mit Parametern auf:

onmouseover="funktion1(parameter1); funktion2(parameter2, parameter3);"

Ich benötige das window.event-Objekt, mit dessen Hilfe ich die Mausposition auslesen kann. Sobald die erste Funktion aufgerufen wurde, ist das Objekt verschwunden und ich weiß nicht, wie ich eine Funktion mit Parametern und zusätzlich mit dem window.event-Objekt aufrufen kann!

Ich hab es so probiert:

onmouseover="e=window.event; funktion1(parameter1, e);"  
  
onmouseover="function(e){if(!e) e=window.event; funktion1(parameter1, e);"  
  
onmouseover=function(e){if(!e) e=window.event; funktion1(parameter1, e);  

Aber alles ohne Erfolg. Es half nichts anderes als die Funktion in einem extra Script-Bereich zu definieren. Hat da jemand eine elegantere Lösung???

  1. Ah, natürlich gehören hinter die beiden "function"-Definitionen noch die schließenden Klammern }

  2. onmouseover="funktion1(event); funktion2(event);"
    düfte browserübergreifend funktionieren und einen Zugriff auf das Event-Objekt in beiden Funktionen ermöglichen.

    Mathias

    1. onmouseover="funktion1(event); funktion2(event);"

      Mathias, du machst mich fertig! Es kommt wirklich und wahrhaftig darauf an, wie der Parameter heißt... Ich habe noch nirgendwo gesehen, dass ihn jemand event genannt hat, immer nur e oder ev. Und meistens wurden im EventHandler Funktionen ohne Parameter aufgerufen, und das Event wurde trotzdem übergeben. Aber so funktioniert es auch mit mehreren Parametern, ich bin begeistert!!!

      onmouseover="funktion1(parameter1, parameter2, event); funktion2(parameter3, event);"

      Yippii!!!

      1. » onmouseover="funktion1(event); funktion2(event);"

        Mathias, du machst mich fertig! Es kommt wirklich und wahrhaftig darauf an, wie der Parameter heißt...

        Der Parameter in deiner Funktion kann auch heißen wie er möchte. Nur beim Aufruf der Funktion muss auch das entsprechende Objekt übergeben werden.  Normalerweise passiert das automatisch, wenn du Events in JS registrierst. Da du aber die klassische Form als inline HTML Event verwendest, musst du das Event Objekt "von Hand" übergeben. Und das ist Browserübergreifen das event Objekt.

        Struppi.