[JS] Pakt alleen de eerste van de array

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 15:05

Saven

Administrator

Topicstarter
Hallo Tweakers,
Ik ben bezig met een soort in/uitklap menu voor mn site dat mensen willekeurig menu's kunnen sluiten zegmaar en dat bewaar ik dan in cookies :P

Nu is het probleem dat hij alleen maar de eerste van de array inklapt terwijl de andere cookies ook gewoon bestaan :S

Code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function scan_menu(menu_array)
{
    for( i=0; i<menu_array.length; i++ )
    {
        var menu_naam = menu_array[i];
        
        var id = document.getElementById(menu_naam);
        var menu = document.getElementById(menu_naam + "menu");
        var img = document.getElementById(menu_naam + "img");
        
        if( getcookie("hide_" + menu_naam) == 1 )
        {
            id.style.display = "none";
            menu.style.margin = "0px 0px 5px 0px";
            img.style.background = "url(http://www.saven.nl/i/png/plus.png)";
        }
        else
        {
            id.style.display = "";
            menu.style.margin = "";
            img.style.background = "url(http://www.saven.nl/i/png/min.png)";
        }
    }
}


En dat roep ik dan zo aan:
HTML:
1
<body onload="scan_menu(Array('poll', 'topics', 'crewtopics', 'blogs', 'blogreacties', 'linkpartners', 'downloads'));">


Het probleem is dus dat hij alleen maar de poll inklapt |:(
Kan iemand mij vertellen wat ik fout doe, en hoe ik dit kan fixen?

Alvast bedankt :)

Acties:
  • 0 Henk 'm!

  • Pkunk
  • Registratie: December 2003
  • Laatst online: 11-09 17:52
Wat doet getcookie() ? Hoe ziet je html eruit? Wat heb je zelf al geprobeert?
Volgens mij kan je dit prima debuggen hoor..

Hallo met Tim


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:40

crisp

Devver

Pixelated

Doe eens een alert(menu_naam) binnen je loop, zie je dan wel alle menu-items langskomen?
Zoniet dan vermoed ik dat functie getcookie() ook iets met variabele 'i' doet zonder deze te declareren net zoals je 'm in scan_menu() niet declareert en het dus een global variabele is.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Misschien een beetje afgezaagd, maar ik zou even oppassen met termen die gereserved zijn.

Ok, ik zég dus niet dat hier reserved words zijn (geen idee). Alleen dat je erop moet letten, aangezien ik hier het idee heb dat dat niet gebeurd.

[ Voor 45% gewijzigd door r0bert op 10-04-2008 11:26 ]


Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 14:23

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
var id = document.getElementById(menu_naam);


noem die variabele bv 'mijnElement'... 'id' is een gereserveerde variebele en nar ik meen explorer kan er behoorlijk op 'hangen' en hele vreemde dingen van gaan doen.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:40

crisp

Devver

Pixelated

'id' is helemaal geen reserved word hoor :?

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Als ik jouw code hier uitprobeer, dan krijg ik allereerst een fout omdat de functie getcookie() niet bestaat. Als ik dit deel uitcommentarieer, dan worden alle stappen in de for-lus hier gewoon uitgevoerd. Is er niet iets fout met die getcookie functie, waardoor de lus wordt afgebroken?

Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
RM-rf schreef op donderdag 10 april 2008 @ 11:00:
code:
1
var id = document.getElementById(menu_naam);


noem die variabele bv 'mijnElement'... 'id' is een gereserveerde variebele en nar ik meen explorer kan er behoorlijk op 'hangen' en hele vreemde dingen van gaan doen.
"mijnElement" 8)7. "id" is niet handig omdat het resultaat van getElementById geen "id" is, en "mijn" is niet handig omdat het niets zegt. Neem iets als menu_element. ;)

[ Voor 5% gewijzigd door Sendy op 11-04-2008 14:07 ]

Pagina: 1