Es geht um meine Seite, auf der Menüpunkte sind, die beim Überfahren die 2.e Ebene preisgeben. Natürlich soll man dann auf den 2.en Layer kommen und dort die Menüpunkte auswählen können.
mit DOM 1 sieht das interessante Stück quellcode so aus:
[snip]
window.onload = function () {
//erstmal wurschteln wir uns bis zum zielcontainer(linkbox) vor und konzentrieren uns da auf die span's
if (document.getElementById)
var x = document.getElementById('linkbox').getElementsByTagName('SPAN');
else if (document.all)
var x = document.all['linkbox'].all.tags('SPAN');
else return;
for (var i=0;i<x.length;i++) {
var tip, pred;//pred = vorgänger von tip
x[i].onmouseover = function () {
if (pred != undefined) {
pred.style.visibility = 'hidden';
clearTimeout(off);
}
tip = document.getElementById(this.id+'_tip');
pred = tip;
tip.style.visibility='visible';
off = setTimeout(function (){tip.style.visibility='hidden'},2000);
tip.onmouseover = function() {if (off) clearTimeout(off)};
tip.onmouseout = function() {
tip.style.visibility='hidden' //irgendwie buggy... der mozi meint es etwas zuuuuu gut mit dem mouseout :/
};
}
}
}
[snap]
Bei meinem DOM 2 Versuch hab ich - testweise - natürlich mit dem EventListener rumgespielt...
[snip]
off = setTimeout(function (){tip.style.visibility='hidden'},2000);
//oke jetzt mal etwas fieser mit beiden DOM types... nicht gut aber kein anderer weg @01:30am
if (document.addEventListener) {
tip.addEventListener('mouseover', function() {if (off) clearTimeout(off)},false);
tip.addEventListener('mouseout', function() {tip.style.visibility='hidden'},true);
} else {
tip.onmouseover = function() {if (off) clearTimeout(off)};
tip.onmouseout = function() {tip.style.visibility='hidden'}; //der Mozi meints zuuu gut mit dem timeout hier
}
[snap]
Nun zu meinem Problem. Warum feuert der Mozilla das mouseout während ich mich noch auf dem Element tip befinde?
Das passende Stück HTML ist hier:
[snip]
<div id="1_tip" class="tooltip tooltext">this is for private purposes only.<br>don't try it unless u r me :)</div>
[snap]
Da ist also kein weiteres Element drin, wg capturing/bubbeling fehlern.
Tja IE macht es, Opera macht es... Mozi nicht *heul*
Wie soll ich denn meine Seite betrachten wenn es meine Browser nicht macht. Momentan hab ich ein Workaround mit einem Timer geschrieben.
cheers
Marc