webForumDet fria alternativet

onmouseout, fungerar ej med flera element

4 svar · 697 visningar · startad av phred

phredMedlem sedan nov. 2005314 inlägg
#1

Hej!

Har en div som kan öppnas och stängas, jag klickar på en knapp så öppnas den, klickar jag på samma knapp igen så stängs den.
Nu vill jag även att om man drar musen utanför diven så ska den stängas, det fungerar också bra, förutsatt att jag inte har något annat element i diven.

Lägger jag tex en länk i diven som öppnas.

<a href="urlen">Länktext</a>

så stängs diven och jag för musen över den och det vill jag inte.

Hur komma runt ?

Tack!

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Exempel:

<script>
function f(d,e)
{
 e = window.event || e;
 var currElm = window.event ? e.toElement : e.relatedTarget;
 while (currElm){
  if (currElm == d) return;
  currElm = currElm.parentNode;
 }
 d.style.visibility = 'hidden';
}
</script>
<form>
 <input type="button" onclick="document.getElementsByTagName('div').item(0).style.visibility='visible'">
</form>
<div style="background:red;padding:5px" onmouseout="f(this,event)">
 <a href="">My link</a>
</div>

Red./ Det verkar som att ett mellanrum smyger sig in i koden vid det sista 'visibility' - tag bort det mellanrummet.

phredMedlem sedan nov. 2005314 inlägg
#3

Skitbra!

Tack så mycket, men jag skulle mer än gärna vilja veta vad den gör ? ;)

Jag bytte även ut visibility till display.

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Koden registrerar först vilket element på sidan som muspekaren träffar då onmouseout-eventet avfyras. Om det elementet härstammar från <div>:en ger vi tusan i att dölja <div>:en, eftersom vi fortfarande befinner oss i den.

phredMedlem sedan nov. 2005314 inlägg
#5

Tack för det Peter S.

Du har säkert hört det förr men jag säger det igen, du är en klippa :D

132 ms totalt · 3 externa anrop · v20260731065814-full.16f3d68c
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)