Fråga om expanderande meny

JavaScript

3 svar · 278 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Trådstart#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?

293 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)