molily: auf Child Element prüfen

Beitrag lesen

Hallo,

Hab im Archiv schon eine mögliche Lösung gefunden, da heist es ich müsste vor dem ausgeben der Meldung prüfen, ob der mouseout Event vom "parent"-div oder von einem der Child Elemente ausgelöst wurde.

Du musst auf das Event-Objekt zugreifen. Dessen Eigenschaften target (im IE: srcElement) verweist auf das Element, bei dem das Ereignis tatsächlich passierte. Die Event-Eigenschaft currentTarget (konventionell: this) verweist auf das Element, bei dem die Handlerfunktion registriert wurde, die gerade ausgeführt wird.

Wenn du die Maus vom Element child1 zu child2 bewegst, dann passiert ein Mouseout-Ereignisse mit target = child1 und currentTarget = parent. Dich interessieren nur Ereignisse mit target = parent.

Du kannst also abfragen, ob das Target-Element die ID parent hat bzw. ob das Target-Element mit dem Element identisch ist, bei dem der Handler registriert wurde (also das currentTarget).

document.getElementById("parent").onmouseout = mouseout;  
  
function mouseout (e) {  
  // Zugriff auf das Event-Objekt  
  if (!e) {  
    // Wenn nicht W3C-konform als Parameter übergeben, benutze window.event (Microsoft-proprietär)  
    e = window.event;  
  }  
  var target;  
  if (e.target) {  
    // gemäß W3C DOM Events  
    target = e.target;  
  } else if (e.srcElement) {  
    // Microsoft-proprietär  
    target = e.srcElement  
  }  
  if (target == this) {  
    // Mouseout-Ereignis passierte am Element mit id="parent" selbst  
    /* ... Reagiere auf das Ereignis ... */  
  }  
}

Mathias