[JS] Array durchlaufen und ggf. Werte ändern

  • Brauch ne Funktion in Javascript, allerdings bekomm ich es nicht hin weil ich nicht weiß wie ich das in Javascript machen soll...
    Also ich hab ein Array (submenus) dieses Speichert im jeweiligen index eine 0 oder eine 1 für Eingeklappt oder ausgeklappt.
    Die Funktion die ich nun brauche soll halt prüfen ob noch irgendein Index 1 hat und wenn ja diesen dann auf 0 setzen.

    Muss ja mit irgendeiner Schleife zu machen sein oder? :D
    Nur wie mach ich das in JS?

    Don't follow me, I run into walls.

  • mmh also so schwer is dat eigentlich nich..

    Code
    blubb = new Array();
    blubb[0] = 0;
    blubb[1] = 1;
    blubb[2] = 1;
    for(i=0; i < blubb.length; i++){
       if(blubb[i] == 1){
               blubb[i] = 0;
       }
    }
  • Habs jetzt mal mit meinem Code probiert... Klappt aber leider nicht Oo

    Kommt irgendwie nicht in die for-schleife rein. Wenn ich ein Alert vor der for-schleife mache, wird der Alert ausgegeben... Wnen ich ihn in der Schleife mache nicht.

    Don't follow me, I run into walls.

  • also ich brauch da schon den gesamten scriptcode bzw haste die webdeveloper toolbar und firebug fürn firefox?

    damit kannste dir in der konsole anzeigen lassen was nich stimmt.
    derzeit behaupte ich mal es sind probleme mit deinem Array submenus...
    das ding muss ja außerhalb deiner funktion, also global, bekannt sein

  • Jo hab beides aber in dem Fall bekomm ich keinen Fehler angezeigt.
    Jupp das Array wird Global erzeugt. Hier der Code:

    Zur erklärung:
    Die Funktion submenu_toggle klappt halt die Submenus aus oder ein. Wenn es aufgeklappt ist bekommt es den Wert 1 und wenn es eingeklappt ist den Wert 0.
    close_submenus brauch ich nun dafür, dass wenn ich ein Submenu auf hab und ein anderes öffne. Erst das andere geschlossen wird und dann das neue aufgemacht wird.

    Don't follow me, I run into walls.

  • wenn du das online hast, schick mir mal bitte den link, derzeit sieht es für mich so aus, als wär in submenues nix drin,aber ich hab ja auch fieber und kann mich täuschen.. ;)

  • mach mal den alert hier: alert(submenus.length);

    in deine close-function rein.. dann wirste staunen ;)

    edit. ich bin noch nen schritt weiter gegangen und hab mal was probiert :)
    aaalso


    liefert ein undefined und ein 0 was bedeutet dass wie bereits vermutet nix im array drin is..
    lösung dafür könnte sein, dass du ein assoziativ-array machst wo du
    submenues['tutorials'] = 0 schreibst..
    aber dann musste das array komplett befüllen bevor du was anderes startest..
    oder du pushst ein element in dein array, so dass da was drin is nachm ersten nutzen der toggle-function

    ansonsten und das wäre die einfachste methode.
    vergib ne class, eine die keinen style hat und dann gehste daher und nimmst dem ding was die klasse hat die klasse weg und gibst dem neuen aktiven element diese klasse

    wenn du hier mal die fosu nach nem karteireitersystem von mir benutzt dann siehste wie ich das dort gemacht hab

    2 Mal editiert, zuletzt von synaptic (31. Mai 2010 um 13:56)

  • 0!!!
    :O

    Aber wieso? :D
    Ahhh okay -.- Ich sollte vorher alle Indexe, global, mit 0 belegen richtig? :D

    EDIT//
    Okay das klappt auch nicht :(
    Ich nehme an du weißt warum? ^^

    Don't follow me, I run into walls.

    Einmal editiert, zuletzt von MyXoToD (31. Mai 2010 um 13:57)

  • So jetz hab ich es... Hab das komplette Javascript nochmal bearbeitet... Klappt jetzt komplett ohne Array^^ Hier der Code:

    Don't follow me, I run into walls.