webForumDet fria alternativet

Dölja lager vid klick utanför

5 svar · 473 visningar · startad av jonne

jonneMedlem sedan jan. 20011 154 inlägg
#1

Hur döljer jag ett lager (sätter display till none) när man klickar utanför lagret?
Har ett lager med information i som visas via en länk. Vill kunna dölja detta lagret (stänga det) när man klickar utanför. Innanför ska klick fungera som vanligt.

KoplikMedlem sedan juli 20011 129 inlägg
#2

En tanke är att i ett javascript ha uttrycket

window.onclick=foo; //foo = valfri function

Men sen hur den reagerar när du klickar i lagret vet jag inte, du kan köra lite alerts för att se vilket som reagerar först. Om det fungerar och den anropar lagret först och sedan stänger det p.g.a. window.onclick så kan du flagga så att den inte stänger när det inte ska det.

KoplikMedlem sedan juli 20011 129 inlägg
#3

Lekte lite lokalt och fick det att lira

<html>
<head>
<title>test</title>
</head>
<body>

<script type="text/javascript">
window.onclick = test;

var dontHide = false;

function test(){
  if(dontHide == false){
    alert("body hit!");
  }

  dontHide = false;
}

function runDiv(){
  alert("layer clicked");
  dontHide = true;
}
</script>

<div style="background-color: red; border: black 1px solid; width: 10em; height: 10em;" onclick="runDiv();">
Test
</div>

</body>
</html>

Gick inte lika bra i IE, men eftersom IE har en förmåga att bete sig ganska annorlunda när man kör direkt mot filsystemet så tror jag att det kan ställa till det lite

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

Byt till document.onclick.

Danne VMedlem sedan aug. 20068 090 inlägg
#5

Jag kan inget om js, men skulle det inte funka med "onBlur" bara? Eller måste det klickas utanför för att det ska försvinna?

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

Vore onblur definierad för <div> så skulle det möjligtvis fungera.

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