ChrisB: onmouseout reagiert im IE falsch?

Beitrag lesen

Hi,

Ok, dann frage ich mal anders. Du warst der Meinung ich verstehe das Event-Modell nicht und der IE reagiert richtig, während der FF falsch reagiert.

Wenn du dich mit dem Mauscursor auf einem Element befindest, und dann ein in diesem liegendes Nachfahrenelement ueberfaehrst - dann tritt mouseout auf dem aeusseren, und mouseover auf dem eben ueberfahrenen Element auf.

Die Document Object Model (DOM) Level 2 Events Specification definiert:

mouseover
   The mouseover event occurs when the pointing device is moved onto an element.

mouseout
   The mouseout event occurs when the pointing device is moved away from an element.

Gut, ueber "moved *away* from an element" *koennte* man vielleicht streiten wollen - aber zusammen mit der Definition fuer mouseover ist m.E. das einzig sinnvolle Verhalten, dass beim Ueberfahren eines Nachfahrenelements mouseout auf dem umgebenden Element ebenfalls eintritt.

Und das beschreibt die verlinkte quirksmode-Seite ja auch so.

Nun, der IE scheint nicht richtig zu reagieren

"Scheint" ist in solchen Dikussionen nicht hilfreich :-)

und meine somit scheint auch meine Nutzung des onmouseout vollkommen in Ordnung zu sein oder siehst du da einen Fehler drin?

Deine *Erwartung* ist einfach falsch.

Wenn du nur auf mouseout reagieren willst, wenn der Bereich des Elements wirklich verlassen, und nicht etwa ein Nachfahrenelement ueberfahren wurde - dann pruefe explizit darauf. Wie schon geschrieben, nutzt man dazu das target des Events - praktischerweise in Kombination mit sowas wie element.contains. Das ist zwar eine IE-Erfindung, fuer Browser, die es nicht kennen, aber relativ einfach nachzuruesten.

MfG ChrisB