Mausevents
Ingo Schmidt
- javascript
1 Gernot Back0 wahsaga2 molily
Hi!
Ich würde gerne mal eure Meinung zu folgendem Sachverhalt hören:
Man bewege die Maus auf der o.g. Testseite vom weißen in den grünen Bereich, von dort dann in den grauen und das ganze wieder zurück.
Am Übergang grün<->grau erhalte ich für ein und dasselbe Objekt (das grüne) ein over- und ein out-Event.
Das entzieht sich meiner Logik. Wie seht ihr das? Warum ist das so? Wie kann man das einsetzen?
Cheers, Ingo =;->
Hallo Ingo,
Das entzieht sich meiner Logik. Wie seht ihr das? Warum ist das so? Wie kann man das einsetzen?
sinnvoll einsetzen kann man das meines Erachtens gar nicht, aber es gibt Workarounds um dieses fiese Phänomen nicht zum Zuge kommen zu lassen.
http://www.faqts.com/knowledge_base/view.phtml/aid/1606/fid/145
Gruß Gernot
Hi Gernot!
sinnvoll einsetzen kann man das meines Erachtens gar nicht, aber es gibt Workarounds um dieses fiese Phänomen nicht zum Zuge kommen zu lassen.
Vielen Dank! Genau meine Meinung. Mit was man alles leben muss...
Aber der Link ist gut. Ich hatte für meinen konkreten Fall zwar auch schon einen Workaround(*) gefunden, aber ich wollte trotzdem wissen, wofür ein solch seltsames Verhalten gut sein soll.
(*)
Ich wollte ein Menü zuklappen lassen. Es soll natürlich NICHT zuklappen, wenn ich über ein Kindelement des Menüs fahre. Also verzögere ich jetzt das Zuklappen und falls in der Verzögerungszeit wieder ein "over" Event kommt, mach ich es eben doch nicht zu.
Cheers, Ingo =;->
hi,
Am Übergang grün<->grau erhalte ich für ein und dasselbe Objekt (das grüne) ein over- und ein out-Event.
Aber sicher nicht gleichzeitig - sondern je nach "Richtung" das eine oder das andere.
Das entzieht sich meiner Logik. Wie seht ihr das? Warum ist das so?
Wenn du von einem Raum in einen angrenzenden gehst, dann finden logischerweise die beiden Events "du verlässt Raum (1)" und "du betrittst Raum (2)" statt. Andernfalls wärst du ja in irgendeiner Dimensionslücke verschwunden ...
gruß,
wahsaga
Hallo wahsaga,
ich habe des jetzt aber so verstanden (und auch selbst erfahren), dass ich "das Haus verlasse, wenn ich vom Flur ins Wohnzimmer gehe".
Gruß, Jürgen
Hallo Jürgen
ich habe des jetzt aber so verstanden (und auch selbst erfahren), dass ich "das Haus verlasse, wenn ich vom Flur ins Wohnzimmer gehe".
Betrachte es mal ein klein wenig anders:
du betrittst den Wohnzimmerfußboden - over1
du steigst auf den Wohnzimmertisch,
damit verlässt du den Fußboden - out1
und betrittst den Tisch - over2
oh, der gerade betretene Tisch steht ja auch auf dem Wohnzimmerfußboden, du stehst also indirekt doch auf diesem - over1
Auf Wiederlesen
Detlef
Hallo Detlef,
das da eine gewisse Logig drin zu finden ist, ist mir schon klar. Aber ich finde Sie recht weltfremd, wie ja die Frage des OPs und die vielen Workarounds zeigen.
Für mich ist eben ein DIV im DIV kein DIV auf dem DIV. Aber natürlich sind beide Sichtweisen möglich.
Gruß, Jürgen
Hallo Jürgen
das da eine gewisse Logig drin zu finden ist, ist mir schon klar. Aber ich finde Sie recht weltfremd, wie ja die Frage des OPs und die vielen Workarounds zeigen.
Der Event steigt auf ("bubblen"), er wird also erst vom auslösenden, dann vom Elternelement, dann von dessen Elternelement usw. gefeuert. Nur dadurch ist es möglich, ihn nicht für jedes einzelne Kindelement abfragen zu müssen.
Wenn also das innere Div den Event feuert, dann feuert ihn anschließend das äußere Div. Jetzt fände ich es durchaus unlogisch, wenn das äußere Div mehrmals onmouseover feuern würde, ohne onmouseout zu feuern.
Für mich ist eben ein DIV im DIV kein DIV auf dem DIV. Aber natürlich sind beide Sichtweisen möglich.
Ob in oder auf spielt eigentlich keine Rolle.
Auf Wiederlesen
Detlef
Hallo,
Man bewege die Maus auf der o.g. Testseite vom weißen in den grünen Bereich, von dort dann in den grauen und das ganze wieder zurück.
Am Übergang grün<->grau erhalte ich für ein und dasselbe Objekt (das grüne) ein over- und ein out-Event.
Das entzieht sich meiner Logik. Wie seht ihr das? Warum ist das so? Wie kann man das einsetzen?
Diese Archiv-Postings sollten der Erklärung dienlich sein:
</archiv/2006/6/t130887/#m846484>
</archiv/2006/4/t127058/#m820234>
</archiv/2005/12/t119761/#m768548>
Mathias