Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von April

SELFHTML Forumsarchiv
OnMouseOut

Informationsseite
  1. Seite (DHTML) OnMouseOut von AlxDe, 11. 04. 2005, 12:34
nach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: AlxDe, 11. 04. 2005, 12:34

Folgender HTML-Code funktioniert weder beim IE, noch bei Firefox wie gewünscht:

<p onmouseout="alert('mouse out')">
abcd<b>efg</b>hijkl
</p>

Wenn man nämlich die Maus aus dem normalen Text in den fettgedruckten bewegt, oder umgekehrt, wird ein MouseOut-Ereignis ausgelöst, obwohl man den p-Bereich nicht verlassen hat.
Dabei ist es völlig egal, mit welchen Tags man arbeitet. Sogar z.B.

<font onmouseout="alert('mouse out')">
abcd<font>efg</font>hijkl
</font>

funktioniert nicht.
Ich kann schlecht nicht vorstellen, dass diese Funktionalität so gewollt/definiert ist.
Welche Lösung gibt es, um MouseOut beim Verlassen eines übergeordneten Tag-Bereiches, das "Untertags" enthält, auszulösen?

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Avalon, 11. 04. 2005, 13:00


Hast Du schonmal unter dem Stichwort "event bubbling" gesucht?

Gruß
Avalon

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: AlxDe, 11. 04. 2005, 13:39

Hallo Avalon,

funktioniert leider nicht :-(

Trotzdem Danke,
AlxDe


<HTML>
<HEAD>
<TITLE></TITLE>

<script>
function test() {
window.event.cancelBubble = true;
}
</script>

</HEAD>
<BODY onload="test()">

<font onmouseout="alert('mouse out')">
abcd<font>efg</font>hijkl
</font>

</BODY>
</HTML>

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Gernot Back, 11. 04. 2005, 13:26

Hallo AlxDe,

seltsamer Effekt, das wusste ich auch noch nicht, widerspricht ja jeder Logik. Mit Event-Bubbling oder -Propagation kannst du dem meines Erachtens auch nicht begegenen. Allenfalls mit einer global definierten Flagge in Kombination mit einem Timeout, das man seltsamerweise auf 0 Millisekunden runtersetzen, aber nicht weglassen kann:

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Mouseout-Workaround</title>
<script type="text/javascript">
var raus;

function melden () {
if(raus)alert('mouse out');
}

</script>
</head>
<body >
<p onmouseover="raus=false" onmouseout="window.setTimeout('melden()',0);raus=true">
abcd<b onmouseout="melden();raus=true">efg</b>hijkl
</p>
</body>
</html>


Gruß Gernot

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: AlxDe, 11. 04. 2005, 14:48

Das läuft, danke!

AlxDe

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Avalon, 11. 04. 2005, 15:37


Das sieht mir alles recht exotisch aus.

Für diejenigen, die es richtig machen wollen:

http://www.faqts.com/knowledge_base/view.phtml/aid/1606/fid/145

Gruß
Avalon

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Gernot Back, 11. 04. 2005, 16:27

Hallo Avalon,

»» Das sieht mir alles recht exotisch aus.

Du scheinst im englischsprachigen Kulturkreis ja sehr zuhause zu sein.

»» Für diejenigen, die es richtig machen wollen:

»» http://www.faqts.com/knowledge_base/view.phtml/aid/1606/fid/145

Ich kann im Moment nicht erkennen, inwiefern die hier vorgestellte Lösung die "Richtigere" für AlxDes Problem sein sollte. Meine ist jedenfalls objektiv schlanker und funktioniert.

(Getestet unter Win98 mit IE6, Mozilla 1.7.2, Netscape 7.1, Opera 7.54)

Gruß Gernot

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Maulwurf, 11. 04. 2005, 13:59

Hi,

Vorschlag:

Fasse alles unter einen <span onmouseout=alert"hallo"></span> zusammen

meiner Meinung nach klappt es

Gruss

Maulwurf

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Gernot Back, 11. 04. 2005, 14:11

Hallo Maulwurf,

»» Fasse alles unter einen <span onmouseout=alert"hallo"></span> zusammen

»» meiner Meinung nach klappt es

Du wirfst ja alles über den Haufen!

Gruß Gernot

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Maulwurf, 11. 04. 2005, 14:18

Hallo Gernot,
»»
»» Du wirfst ja alles über den Haufen!
»»

Warum?

Gruss

Maulwurf

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Gernot Back, 11. 04. 2005, 14:24

Hallo Maulwurf,

»» Warum?
a) Weil man keine Blockelemete in Inline-Elemente schachteln darf,
b) Weil eine weitere Verschachtelung, selbst in ein Blockelement, nichts bringt,
c) Weil das keine Frage von Meinung ist.


Gruß Gernot

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: Maulwurf, 11. 04. 2005, 14:41

Hallo Gernot

folgenden code gerade getestet in Firefox:

<html>
<head>
<title></title>
</head>
<body>
<span onmouseout="alert('mouse out')">
<p >
abcd1234567890<b>efg</b>hijkl
</p>
</span>
</body>
</html>

funktioniert wie eine Eins

Gruss

Maulwurf

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: AlxDe, 11. 04. 2005, 14:46

Hallo Maulwurf,

ich erhalte aber ein mouseOut, wenn ich vom normalen Text in den fetten komme.

Gruß,
Alex

nach obennach unten

OnMouseOut

Die folgende Nachricht zum Thema stammt von: wahsaga, 11. 04. 2005, 14:51

hi,

»» folgenden code gerade getestet in Firefox:
»» [...]
»» <span onmouseout="alert('mouse out')">
»» <p >
»» abcd1234567890<b>efg</b>hijkl
»» </p>
»» </span>
»» [...]
»» funktioniert wie eine Eins

ist aber trotzdem nicht korrekt, weil - wie dir schon gesagt wurde - span kein p enthalten darf.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von April

© 1998-2006 Seite Impressum, Software: Classic Forum