Avatar billede repsac Nybegynder
06. juni 2002 - 23:42 Der er 13 kommentarer og
1 løsning

Bruge variabel fra funktion

Hey folks,

Jeg har nu siddet og øv'et lidt over at jeg ikke kan få følgende stykke kode til at spille:

function menu_click(name) {
    if (name.style.display=="none") {
        name.style.display="";
    } else {
        name.style.display="none";
    }
}

Jeg har en div med id'en test, men når jeg aktiverer "menu_click('test')" går der bare mos i den.

Jeg har forsøgt at udskifte name i ovenstående funktion med test - det spiller fint.

Mit reelle spørgsmål er altså derfor hvad syntaksen er for at benytte variablen name i ovenstående funktion på den måde jeg ønsker (håber at det er tydeligt at se).

På forhånd tak!

/Casper

PS. Nok et lamt og usandsynligt usselt spørgsmål, men jeg er desværre ikke JavaScript haj ;)
Avatar billede repsac Nybegynder
06. juni 2002 - 23:50 #1
Indholdet af variablen "name" skal altså indsættes der hvor der står "name"
eks: if (test.style.display=="none") {

Er mit spørgsmål forståeligt?
Avatar billede repsac Nybegynder
06. juni 2002 - 23:51 #2
Altså if (test.style.display=="none") { hvis jeg bruger menu_click('test')...
Avatar billede medions Nybegynder
06. juni 2002 - 23:51 #3
<script>
  function funktion(tekst) {
      document.write(tekst);
  }
</script>
<div OnClick="funktion('Rune er for sej!');">klik her</div>

//>Rune
Avatar billede repsac Nybegynder
06. juni 2002 - 23:57 #4
I får lige lidt mere kode...

<script type="text/JavaScript">
function menu_click(name) {
    if (name.style.display=="none") {
        name.style.display="";
    } else {
        name.style.display="none";
    }
}
</script>

<div onClick="menu_click('test');">klik her og vis "test"</div>
<div id="test" style="display: none;">

tisset virker bare ikke...
Avatar billede medions Nybegynder
07. juni 2002 - 00:00 #5
<html>
    <head>
        <title>Til respac :-)</title>
    </head>
<body>

<script language="JavaScript">
    function showMnu(id) {
        var styleCheck = document.getElementById("mnu" + id).style.display;
        //alert(styleCheck);
       
        if (styleCheck == "inline") {
            document.getElementById("mnu" + id).style.display = "none";
        }
        if (styleCheck == "none") {
            document.getElementById("mnu" + id).style.display = "inline";
        }
    }
    function showLink(url) {
        alert(url);
    }
</script>

<div style="Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;" OnClick="showMnu(1);">Foldud1</div>
    <div style="Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;" id="mnu1">
    &nbsp;-<span onClick="showLink('link1menu1')">Link1 Menu1</span><br>
    &nbsp;-<span onClick="showLink('link2menu1')">Link2 Menu1</span><br>
</div>
<div style="Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;" OnClick="showMnu(2);">Foldud2</div>
    <div style="Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;" id="mnu2">
    &nbsp;-<span onClick="showLink('link1menu2')">Link1 Menu2</span><br>
</div>
<div style="Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;" OnClick="showMnu(3);">Foldud3</div>
    <div style="Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;" id="mnu3">
    &nbsp;-<span onClick="showLink('link1menu3')">Link1 Menu3</span><br>
    &nbsp;-<span onClick="showLink('link2menu3')">Link2 Menu3</span><br>
    &nbsp;-<span onClick="showLink('Link3menu3')">Link3 Menu3</span><br>
</div>


</body>
</html>

//>Rune
Avatar billede jakoba Nybegynder
07. juni 2002 - 00:05 #6
'test' er en streng med et navn i. det du skal have foran . er det objekt 'test' er navnet på:

function menu_click(name) {
    if (document.all[name].style.display=="none") {
        document.all[name].style.display="";
    } else {
        document.all[name].style.display="none";
    }
}

det er så IE only for at få ns med bliver det noget med at finde objektet separat:

function menu_click(name) {
    var namedObjS = (document.getElementById)
                        ?document.getElementById(name).style
                        :(document.layers)
                            ?document[name]
                            :document.all[name].style;
    if (namedObjS.display=="none") {
        namedObjS.style.display="";
    } else {
        namedObjS.style.display="none";
    }
}

mvh JakobA
Avatar billede jakoba Nybegynder
07. juni 2002 - 00:08 #7
Ups.  skulle have fjernet style. i de to andre linier også:
    if (namedObjS.display=="none") {
        namedObjS.display="";
    } else {
        namedObjS.display="none";
    }
Avatar billede repsac Nybegynder
07. juni 2002 - 00:25 #8
=>jakoba: medions getElementById-haløj virker fint i NS6...
Avatar billede jakoba Nybegynder
07. juni 2002 - 00:29 #9
Ja da.  det er nok mest ns4 der er speciel.
Avatar billede repsac Nybegynder
07. juni 2002 - 00:38 #10
Ok, meeen... man kan jo også tage hensyn til for mange... ;)
Bruger man ns4 burde man vist også til at opdatere :)
Avatar billede repsac Nybegynder
07. juni 2002 - 00:39 #11
Jeg bruger derfor bare getElementById... derfor pointfordelingen. Håber det kan accepteres, men tak for dit indlæg JakobA!
Avatar billede medions Nybegynder
07. juni 2002 - 00:42 #12
Thx 4 Poinz
//>Rune
Avatar billede jakoba Nybegynder
07. juni 2002 - 00:43 #13
gelt ok med mig :-))
Avatar billede repsac Nybegynder
09. juni 2002 - 15:41 #14
godt godt
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