Avatar billede -kenner- Nybegynder
19. januar 2008 - 14:58 Der er 12 kommentarer

Ole-bole: Javamenu, ønsker overskrift som link

Hej eksperter, <ole></bole> lavede denne kode i sin tid, men jeg har et ønske om at overskriften skal være et link. som det er nu er det kun subpunkterne der er links.

Source:

<script type="text/JavaScript">
        var actMen = false;
        function toggle(elm) {
            var idInx = elm.id.split("head_")[1];
            var tDiv = document.getElementById("text_"+idInx);
            var im = document.getElementById("icn_"+idInx);
            if (actMen) {
                actMen.elm.style.display = "none";
                actMen.im.src = "open.gif";
            }
            tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
            im.src = (im.src.indexOf("open")!=-1)? "close.gif" : "open.gif";
            actMen = {"elm":tDiv, "im":im};
        }
        </script>

        <div class="cont"><img id="icn_1" src="open.gif">
            <a href="#" id="head_1" onclick="toggle(this);return false">1 Overskrift</a>
            <div id="text_1" style="display:none">
            <a href="#">Sub til 1</a><br>
            <a href="#">Sub til 1</a><br>
            <a href="#">Sub til 1</a>
            </div>
        </div>

        <div class="cont"><img id="icn_2" src="open.gif">
            <a href="#" id="head_2" onclick="toggle(this);return false">2 Overskrift</a>
            <div id="text_2" style="display:none">
            <a href="#">Sub til 2</a><br>
            <a href="#">Sub til 2</a>
            </div>
        </div>
Avatar billede roenving Novice
19. januar 2008 - 15:14 #1
-- hvordan vil du så åbne menuerne, siden vil jo skifte ?-)
Avatar billede -kenner- Nybegynder
19. januar 2008 - 15:33 #2
Jeg regner med at køre et iframe, så menuen åbnes imens en side loades
Avatar billede -kenner- Nybegynder
19. januar 2008 - 15:35 #3
lige en anden ting, kan det lade sig gøre at få menuen til at begrænse åbningen af flere menuer et en, uden de billeder der skifter, for dem regner jeg med at fjerne.
Avatar billede roenving Novice
19. januar 2008 - 15:42 #4
<div class="cont"><img id="icn_1" src="open.gif">
            <a href="http://www.domaine.dk/dinSide.html" target="dinIframe" id="head_1" onclick="toggle(this);">1 Overskrift</a>

-- billederne fjerner du bare, og så skal scriptet se sådan ud:

        <script type="text/JavaScript">
        var actMen = false;
        function toggle(elm) {
            var idInx = elm.id.split("head_")[1];
            var tDiv = document.getElementById("text_"+idInx);
            if (actMen) {
                actMen.elm.style.display = "none";
            }
            tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
            actMen = {"elm":tDiv};
        }
        </script>
Avatar billede -kenner- Nybegynder
20. januar 2008 - 17:52 #5
actMen.elm.style.display = "none"; ?

Kan jeg bruge den til at ændre overskriftens class når boksen er åben?
Hvis vi nu siger at en oveskrift ser sådan ud:

<a href="#" id="head_1" onclick="toggle(this);return false" class="header">1 Overskrift</a>

og når den er åben skal den hedde class="headeractive"?
Avatar billede roenving Novice
20. januar 2008 - 23:32 #6
Tjah, både og ...

-- for det første er actMen jo et barn af det element, der indeholder linket, for det andet er det rent tåbeligt at skifte en klasse on-the-fly (da browseren så skal genberegne hele udseendet, som var det et ny-loadet dokument !-)

-- men noget i stil med:

        <script type="text/JavaScript">
        var actMen = false;
        function toggle(elm) {
            var idInx = elm.id.split("head_")[1];
            elm.style.color = "#987ffc";//og hvad du ellers vil ændre på den aktive overskrift
            var tDiv = document.getElementById("text_"+idInx);
            if (actMen) {
                actMen.elm.style.display = "none";
                actMen.header.style.color = "";//og hvad du ellers vil ændre (her tilbage til start !-)
            }
            tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
            actMen = {"elm":tDiv,"header":elm};
        }
        </script>
Avatar billede -kenner- Nybegynder
21. januar 2008 - 00:05 #7
Det er fordi jeg gerne vil skifte baggrundsfarven på min overskrift:)
Avatar billede roenving Novice
21. januar 2008 - 00:25 #8
backgroundColor i stedet for color så !-)
Avatar billede -kenner- Nybegynder
21. januar 2008 - 23:00 #9
Det eneste der ikke fungerer for mig er at hvis man klikker på et punkt der allerede er aktivt, altså åbnet, så deaktivere det igen uden at lukke?

Sådan her:



<script type="text/JavaScript">
        var actMen = false;
        function toggle(elm) {
            var idInx = elm.id.split("head_")[1];
            elm.style.backgroundColor = "#9e8d78";//og hvad du ellers vil ændre på den aktive overskrift
            var tDiv = document.getElementById("text_"+idInx);
            if (actMen) {
                actMen.elm.style.display = "none";
                actMen.header.style.backgroundColor = "#e3decd";//og hvad du ellers vil ændre (her tilbage til start !-)
            }
            tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
            actMen = {"elm":tDiv,"header":elm};
        }
        </script>
Avatar billede roenving Novice
23. januar 2008 - 01:02 #10
Vend tingene om, så du gør noget ved actMen først:

      <script type="text/JavaScript">
        var actMen = false;
        function toggle(elm) {
            if (actMen) {
                actMen.elm.style.display = "none";
                actMen.header.style.backgroundColor = "#e3decd";//og hvad du ellers vil ændre (her tilbage til start !-)
            }
            var idInx = elm.id.split("head_")[1];
            elm.style.backgroundColor = "#9e8d78";//og hvad du ellers vil ændre på den aktive overskrift
            var tDiv = document.getElementById("text_"+idInx);
            if (actMen) {
                actMen.elm.style.display = "none";
                actMen.header.style.backgroundColor = "#e3decd";//og hvad du ellers vil ændre (her tilbage til start !-)
            }
            tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
            actMen = {"elm":tDiv,"header":elm};
        }
      </script>
Avatar billede -kenner- Nybegynder
26. januar 2008 - 02:41 #11
Hmm.. Det fungere stadig ikke. Når jeg klikker toggler den farven af, selvom droppen forbliver vist. Det skal enten lukke droppen eller forblive farven.. det kommer an på hvad der er lettest at løse for jer:)
Avatar billede -kenner- Nybegynder
30. januar 2008 - 21:51 #12
Hvorfor kan jeg pludselig ikke gøre sådan her:
<div class="sub">
                            <div class="header" id="head_6" onclick="parent.HovedFrame.location='side.php?side=<?= $menu_fairs;?>';toggle(this);return false"><div class="headermini"><?= $menu_fairs;?></div></div>
                            <span id="text_6" style="display:none">
                            </span>
                        </div>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester