Foutje in javascript

Pagina: 1
Acties:

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ik heb een menu gemaakt die zeg maar uitklapt als je op hoofdnode klikt. de code is als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script language="JavaScript">

var showing = new Boolean;
showing = false;

function shownieuws()
  { 
    if(showing=false) {
        document.getElementById("nieuws").style.display = "none";
        var showing = true; 
    } 
    if(showing=true) {      
            document.getElementById("nieuws").style.display = "block";
            var showing = false;
        }       
  }
</script>

Alleen hij laat hem wel zien maar als ik de methode nog maals aanroep klapt ie niet weer in. Wie helpt mij

Verwijderd

if(showing == false)
en
if(showing == true)
Een dubbel is-gelijk teken gebruiken als vergelijkingsoperator.

Overigens is het instellen van een globale variabele volledig overbodig, en gaat het mer de aanpassing naar dubbele is-gelijk tekens nog niet werken. Je voert die if uit, en verandert een variabele, en meteen erna doe je meteen weer een if met die variabele. Dat gaat natuurlijk niet zoals je wilt.

Maak er het volgende van:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function shownieuws()
{
   var element = document.getElementById('nieuws');

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

Waarom ik != gebruik, en geen == is omdat dit minder vaak fout gaat.

Tot slot: je bent binnen een functie met een 'globale' variabele bezig. Ga dan niet binnen de functie nog eens een lokale variabele met dezelfe naam declareren. Dan be je gweoon met 2 verschillende dingen bezig.

[ Voor 19% gewijzigd door Verwijderd op 26-06-2003 19:43 ]


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Thank u voor de snelle en duidelijke uitleg, moet nog ff inkomen in JAVASCRIPT