Toon posts:

[JS] Menu klapt alles uit.

Pagina: 1
Acties:
  • 67 views sinds 30-01-2008

Verwijderd

Topicstarter
Beste Tweakers,

Ik heb een stukje, nouja, stuk Javascript wat een menu moet in- en uitklappen. Het probleem is echter, dat als je op 1 hoofdcategorie klikt, dat hij dan ook alle andere menu's uitklapt. Ik heb veel dingen geprobeerd, maar het mocht allemaal niet baten.

Heeft iemand een idee hoe ik er maar 1 laat uitklappen, namelijk degene die ik aanklik?

Dit is de functie Toggle:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
function Toggle(item) {
   obj=document.getElementsByName(item);
   for (i=0;i<obj.length;i++) {
       visible=(obj[i].style.display!="none")
       if (visible) {
         obj[i].style.display="none";
       } else {
          obj[i].style.display="block";
       }
    }
}


En dit is de rest van de code, het menu:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
$result_items = mysql_query("SELECT `id`, `cat` FROM `shop2` ORDER BY `cat`");
$cat_all = array();
$cat_check = array();
$cat_name = array();
$numb = 0;
$idh = 0;
$items = mysql_num_rows($result_items);
while (list($id, $cat2) = mysql_fetch_row($result_items)){
    $cat = explode("->", $cat2);
    $cat_name[$id] = $cat;
    for($i = 0; $i < count($cat); $i++){
        if($i == 0){$wat = $cat[$i];}elseif($i == 1){$wat = $cat[$i-1]."->".$cat[$i];}elseif($i == 2){$wat = $cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 3){$wat = $cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 4){$wat = $cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 5){$wat = $cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}
        elseif($i == 6){$wat = $cat[$i-6]."->".$cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 7){$wat = $cat[$i-7]."->".$cat[$i-6]."->".$cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 8){$wat = $cat[$i-8]."->".$cat[$i-7]."->".$cat[$i-6]."->".$cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}
        if(!in_array($wat, $cat_check[$i])){
            if(!empty($cat[$i])){
                if(empty($cat[$i-1])){
                    $cat_all[$i][$numb][0] = "+".$id;
                }
                elseif(empty($cat[$i+1])){
                    $cat_all[$i][$numb][0] = "*".$id; 
                }
                else{
                    $cat_all[$i][$numb][0] = $id;
                }
                if($i == 0){$cat_check[$i][$numb] = $cat[$i];}elseif($i == 1){$cat_check[$i][$numb] = $cat[$i-1]."->".$cat[$i];}elseif($i == 2){$cat_check[$i][$numb] = $cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 3){$cat_check[$i][$numb] = $cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 4){$cat_check[$i][$numb] = $cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 5){$cat_check[$i][$numb] = $cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}
                elseif($i == 6){$cat_check[$i][$numb] = $cat[$i-6]."->".$cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 7){$cat_check[$i][$numb] = $cat[$i-7]."->".$cat[$i-6]."->".$cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}elseif($i == 8){$cat_check[$i][$numb] = $cat[$i-8]."->".$cat[$i-7]."->".$cat[$i-6]."->".$cat[$i-5]."->".$cat[$i-4]."->".$cat[$i-3]."->".$cat[$i-2]."->".$cat[$i-1]."->".$cat[$i];}
            }
            else{$cat_all[$i][$numb][0] = "";}
        }
        if(!empty($cat_all[$i][$numb][0])){
            if($i == 0){$level = "";}elseif($i == 1){$level = "- ";}elseif($i == 2){$level = "- - ";}elseif($i == 3){$level = "- - - ";}elseif($i == 4){$level = "- - - - ";}
            if(ereg("\+", $cat_all[$i][$numb][0])){
                $cat_all[$i][$numb][0] = str_replace("+", "", $cat_all[$i][$numb][0]);
                $naam = $cat_name[$cat_all[$i][$numb][0]][$i];
                echo("<a href=\"javascript:Toggle('". $i ."')\";>". $level ."".$naam."<br></a>\n");
            }
            elseif(ereg("\*", $cat_all[$i][$numb][0])){
                $cat_all[$i][$numb][0] = str_replace("*", "", $cat_all[$i][$numb][0]);
                $naam = $cat_name[$cat_all[$i][$numb][0]][$i];
                $idh2 = $i - 1;
                echo("<a name=\"". $idh2 ."\" style=\"display: none; color:#E68500\" href=\"shop.php?id=". $cat_all[$i][$numb][0] ."\">". $level ."".$naam."<br></a>\n");
            }
            else{
                $naam = $cat_name[$cat_all[$i][$numb][0]][$i];
                $idh2 = $i - 1;
                echo("<a name=\"". $idh2 ."\" style=\"display: none\" href=\"javascript:Toggle('". $i ."')\";>". $level ."".$naam."<br></a>\n");
            }
            $idh += 1;
        }
    }
    $numb += 1;
}
?>

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En wat heb je zelf al geprobeerd? En wat werkte daar niet aan?
Hier in PRG is het de bedoeling dat je zelf je code debugged en als je daar concrete vragen over hebt dan is dat geen probleem; echter zoals jij dat doet (een bak code dumpen et voila, hopen dat iemand het voor je oplost) is niet volgens die richtlijnen (die je kunt vinden in de Programming Beleid Quickstart).

Tevens plaats je je topic in het verkeerde forum (JS hoort in [WEB], zie Waar hoort mijn topic?) maar ook aldaar zullen ze niet blij zijn met een "los mijn probleem eens op" topic. Daarom gaat dit topic dan ook op slot.

Je bent welkom om het opnieuw te proberen mits je je eigen inzet toont, aangeeft wat je al hebt geprobeerd en wat er niet werkte en als je enkel en alleen relevante code plaatst.

[ Voor 3% gewijzigd door RobIII op 13-11-2006 14:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.