webForumDet fria alternativet

Dölja lager vid klick utanför

JavaScript

5 svar · 473 visningar · startad av jonne

Medlem sedan jan. 20011 154 inlägg
Frågan#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.

Medlem 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.

Medlem 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

Medlem sedan dec. 20025 483 inlägg
#4

Byt till document.onclick.

Medlem 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?

Medlem sedan dec. 20025 483 inlägg
#6

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

267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)