webForumDet fria alternativet

Hjälp med FAQ

2 svar · 439 visningar · startad av AboO

AboOMedlem sedan juni 2002191 inlägg
#1

Jag har en FAQ-sida där man klickar på frågan, då öppnas själva svaret på frågan. Kolla på t.ex. http://www.silverklubben.se/faq.html

Scriptet ser ut så här:

function displayLayer(which) {
obj = document.getElementById(which);
obj.style.display == "block" ? obj.style.display = "none" : obj.style.display = "block";
}

Sedan använder man det det så här:

<a href="#" onClick="displayLayer('p2'); return false;">

Nu skulle jag vilja ändra på det så att när man klickar på en fråga, då ska alla öppna frågor stängas. Som det är nu kan man öppna alla frågor men jag vill alltså att bara en fråga ska kunna vara öppen samtidigt. Någon som kan hjälpa mig med det?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2
<script type="text/javascript">
function displayLayer(which) {
  for (var i=1, obj=document.getElementById('p'+i); obj != null; i++,obj=document.getElementById('p'+i)  ){
    if (('p'+i) == which){
      obj.style.display == "block" ? obj.style.display = "none" : obj.style.display = "block";
    }else{
      obj.style.display = "none";
    }
  }
}
</script>
MickeA.comMedlem sedan feb. 20034 441 inlägg
#3

Du måste loopa igenom alla dina object som kan visas/döljas. Använder du något ramverk, t.ex. jQuery?

Om du gör det och alla divar har samma classnamn, så kan du köra följande funktion:

displayLayer(which){
   $('.klassnamn').hide();
   var $obj = which;
   $(obj).show();
}

Otestat, men bör fungera...

// RED

Nu var visst nitro2k01 lite snabbare på att skriva... typiskt... :)

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