Toon posts:

[JS] variabele wijzigen in functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil in mijn menu iets maken dat hij de link waar je op klikt een andere kleur geeft, en zodra je op een andere link klikt, moet die vorige link weer terug naar zijn originele kleur en moet het tweede linkje verkleuren, zodat je precies kunt zien op welk onderdeel je bent...

Nu heb ik deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script language='JavaScript1.2'>
var vorig = null;
function kleur(bestand, vorig){
     if(vorig !== null){
          document.getElementById(''+ vorig +'').style.color='#000000';
     }

     vorig = ''+ bestand +''

     document.getElementById(''+ bestand +'').style.color='#0000FF';
     return vorig;
}
</script>";


Nu is het probleem dat hoe je ook klikt... vorig blijft altijd NULL

Hoe zorg ik er nu voor dat het goed werkt??

[ Voor 11% gewijzigd door Verwijderd op 04-12-2004 20:20 ]


Verwijderd

Ten eerste denk ik dat je even goed moet gaan uitleggen wat bestand, vorig en huidig precies zijn.
Waarom return je vorig? Waarom geef je vorig mee als argument? Moet je vorig overal niet vervangen door huidig?

Wat mij betreft kun je zelf prima even gaan debuggen, en overal even alert(variabele) doen waar je iets ermee gedaan hebt.

[ Voor 7% gewijzigd door Verwijderd op 04-12-2004 20:21 ]


Verwijderd

Topicstarter
Ja... dat debuggen heb ik eruit gehaald. Daarvoor heb ik dit gebruikt:
code:
1
window.alert(bestand +' '+ vorig);
Maar hij laat nu bij vorig altijd NULL zien en bestand gaat wel goed en hij verandert vorig ook goed, maar hij moet het wel opslaan (ik dacht dat dat kon door het te returnen)!

Voor de linkjes gebuik ik trouwens:
code:
1
2
3
4
<a id='link1' href="#" onClick="kleur('link1',vorig);return true;">
<a id='link2' href="#" onClick="kleur('link2',vorig);return true;">
<a id='link3' href="#" onClick="kleur('link3',vorig);return true;">
<a id='link4 href="#" onClick="kleur('link4',vorig);return true;">

[ Voor 69% gewijzigd door Verwijderd op 04-12-2004 20:35 ]


  • JeromeB
  • Registratie: September 2003
  • Laatst online: 19-03 22:07

JeromeB

woei

Ik begrijp niet wat je precies wilt, maar vergeet je niet een semicolon? Dus:

code:
1
vorig = ''+ bestand +'';


En het is != inplaats van !==

PC load letter? What the fuck does that mean?


Verwijderd

Topicstarter
Na het wijzigen van deze twee dingen blijft het resultaat verder hetzelfde... Dus nog geen vooruitgang

Verwijderd

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
var vorig = null;

function kleur(el){
   if (vorig !== null){
     vorig.style.color = '#000000';
   }

   vorig = el;
   el.style.color='#0000FF';

   return true;
}
</script>


HTML:
1
2
3
4
<a href="#" onclick="return kleur(this);">Link 1</a>
<a href="#" onclick="return kleur(this);">Link 2</a>
<a href="#" onclick="return kleur(this);">Link 3</a>
<a href="#" onclick="return kleur(this);">Link 4</a>

Dit is een stukje handiger. Je maakt op deze manier gebruikt van het feit dat je elementen als object kunt benaderen, vooral het keyword this is erg handig. Ik heb de return true verplaatst naar de functie, zo is het iets korter.

Ik stop dus niet een id maar een referentie naar het object in de variabele vorig.

Verwijderd

JeromeB schreef op zaterdag 04 december 2004 @ 20:39:
Ik begrijp niet wat je precies wilt, maar vergeet je niet een semicolon? Dus:

code:
1
vorig = ''+ bestand +'';
Dit is in javascript niet verplicht (wel aan te raden). Een statement eindigt op het eind van een regel, tenzij er een backslash als laatste teken staat, die escapet dan namelijk de newline character.
En het is != inplaats van !==
Nee hoor, != betekent is niet gelijk aan, !== betekent is niet gelijk aan, of niet van hetzelfde type als

[ Voor 13% gewijzigd door Verwijderd op 04-12-2004 21:13 . Reden: dank Blues O-) :) ]


Verwijderd

Maar dan is niet gelijk aan. ;)

Verwijderd

Topicstarter
Verwijderd schreef op zaterdag 04 december 2004 @ 20:46:
Dit is een stukje handiger. Je maakt op deze manier gebruikt van het feit dat je elementen als object kunt benaderen, vooral het keyword this is erg handig. Ik heb de return true verplaatst naar de functie, zo is het iets korter.

Ik stop dus niet een id maar een referentie naar het object in de variabele vorig.
Tnx... het werkt nu!!
Pagina: 1