webForumDet fria alternativet

Fråga om expanderande meny

JavaScript

3 svar · 275 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Frågan#1

Hej.

Jag använder den expanderande menyn som finns i ett par trådar här på wF (t.ex. denna).
Den fungerar bra, men det är en grej jag saknar i den.
Jag skulle vilja att när man klickar på nästa meny, så ska föregående stängas.
Som det är nu måste man klicka på samma meny igen för att stänga innan man tar nästa.
Går det att göra?

Här är det som används i <HEAD>:

  <script>
    function menu(objId) {
        var obj = document.getElementById(objId);
        if(obj.style.display=='none') {
        obj.style.display=''
        }
        else obj.style.display='none'
    }
  </script>

Och det som används på sidan:

<div onclick="menu('menyInfo')" style="cursor: pointer">
  » <a href="info.asp">Info</a>
</div>
<div style="display: none" id="menyInfo">
  - <a href="info1.asp">Info1</a><br>
  - <a href="info2.asp">Info2</a>
</div>
Medlem sedan dec. 20025 483 inlägg
#2

Hejsan!

    var curr = null;
    function menu(objId) {
        var obj = document.getElementById(objId);

        if (curr && curr != obj){
	    curr.style.display = "none";
        }

        if(obj.style.display=='none') {
            obj.style.display='block';
        }
        else {
            obj.style.display='none';
        }

        curr = obj;
    }
Medlem sedan jan. 2003173 inlägg
#3

Tack!
Fungerar utmärkt!

Medlem sedan jan. 20051 130 inlägg
#4

Hmm, men nu "stängs" ju menyn när man klickar på en länk... Hur ska man göra för att menyn fortfarande ska vara expanderad?

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