[JS/CSS] Menu uitgeklapt houden

Pagina: 1
Acties:

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Ik heb onderstaande functie voor mijn uitklapmenu:
JavaScript:
1
2
3
4
5
6
7
8
9
10
  function showSub(e)  {
    w = document.getElementById(e).style;
    if(w.display == "block")  {
      w.display = "none";
    }
    else  {
      w.display = "block";
    }
    return false
  }

Dit werkt allemaal prima, alleen heb ik 1 probleem. Ik zou graag willen dat het menu uitgeklapt blijft als er naar een andere pagina gesurft word. Dus in het menu klik je bijvoorbeeld op nieuws > inschrijfformulier dat dan het menu op nieuws uitgeklapt blijft. Alleen heb ik geen idee hoe ik dit aan moet pakken. Ik heb wel al geprobeert om in de div van het inschrijfformulier d.m.v. onload eventhandler de functie aan te roepen, met als waarde die van nieuws maar dit werkte niet. Is er een manier om er nu toch voor te zorgen dat het menu uitegklapt blijft?
Ik heb met de search trouwens wel iets gevonden over cookie's oid, alleen heb ik geen idee hoe ik dit dan toe zou moeten passen in mijn situatie, dus als iemand mij enigsinds opweg zou kunnen helpen, zou dat mooi uitkomen :)

edit:
De pagina staat overigens hier

[ Voor 8% gewijzigd door kleautviool op 02-03-2004 15:17 ]


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Zodra er van een pagina genavigeerd wordt, set cookie met menu waarden, onload -> get waarden from cookie -> functie(waarden).

[ Voor 11% gewijzigd door CrashOne op 02-03-2004 15:21 ]

Huur mij in als freelance SEO consultant!


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je hoeft niet perse cookies te gebruiken; gebruikers kunnen ze immers uitschakelen of niet accepteren.

Daarnaast is je menu structuur niet zo heel ingewikkeld. Je kan het op twee drie manieren oplossen:

1. Aan de hand van de pagina waar je opzit, die functie aanroepen zodat de parent van je menu-item wordt opengeklapt.

2. Dmv de searchstring wegschrijven welke menu-item is geklikt en deze vervolgens onload weer ophalen en de juiste menu-item uitklappen

3. Toch cookies gebruiken om de waardes te setten en getten.

:)

edit:
Cookie functie van een mede-forummer: http://www.codebase.nl/index.php/command/viewcode/id/108

[ Voor 10% gewijzigd door BtM909 op 02-03-2004 15:29 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Misschien begrijp ik het niet helemaal, maar als ik een cookie set met de waarde van de klik (dus bijvoorbield nieuws) en deze dan vervolgens onload in de functie (onload="showSub('cookiewaarde')" dan heeft dit toch hetzelfde effect als gewoon op nieuws onload="showSub('nieuws')" te doen? En dat werkte juist niet.

Of begrijp ik het nu verkeerd?

  • sjaakaq
  • Registratie: September 2003
  • Laatst online: 17-04 10:24

sjaakaq

It might get loud

Mag ik je er trouwens op attenderen dat de menu's niet werken (uitklappen) in Opera...

leoaq.fm // Jeune Loop


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Hmm dat zuigt wel. Wist ik iig niet, bedankt voor de tip.

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
* Kick *

Sorry dat ik dit topic zo hard kick, maar ik loop weer even vast. Ik ben hier nu een beetje mee aan het stoeien geweest en opzich gaat het de goede richting in, maar het werkt nog niet helemaal lekker.
Zodra er op een menuitem geklikt word, word er een cookie geset met als waarde de naam van de onderliggende ul (Dus de ul die 'geactiveerd' moet worden). Nu roep ik via een andere functie bij onload de desbetreffende ul aan om opengeklapt te blijven, alleen loopt deze 1 'ronde achter'. Dus stel ik klik op team en vervolgens op een link uit de lijst eronder dan krijg ik niks, klik ik vervolgens op activiteiten en dan op een link uit het submenu dan blijft het submenu van team uitgeklapt staan terwijl dit het submenu van activiteiten moet zijn.
Een ander probleem is ook dat als ik nu op een link zonder submenu eronder klik, dan blijft er altijd een submenu uitgeklapt, terwijl dit dan niet zou moeten. Hoe kan ik nu onderstaande code aanpassen zodat alles goed gaat werken?

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
25
26
27
28
29
30
31
32
    function showSub(e)  {
        var weg, naam, sEl
        weg = new Date
        weg.setMonth(weg.getMonth()+1)
        naam = "";
        if(document.cookie != "")  {
            naam = document.cookie.split("=")[1]
        }
        naam = e;
        document.cookie = "naam="+naam+";expires="+weg.toGMTString()
        alert("Klik: "+document.cookie.split("=")[1])
        sEl = document.getElementById(e).style;
        if(sEl.display == "block")  {
            sEl.display = "none";
        }
        else  {
            sEl.display = "block";
        }
        return false
    }

    function show()  {
        if(document.cookie != "")  {
            document.getElementById(document.cookie.split("=")[1]).style.display = "block";
        }
    }

[..]

    window.onload = function(){
        show()
    };


Ben niet echt een goede javascripter dus let niet op ranzigheid oid :P

Oja, die alert heb ik er even voor mijzelf instaan om te zien of het setten van de cookies lukt (dit lukt btw :))

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Zonder naar de code te kijken denk ik dat je cookie verkeerd of te laat geset word.

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Volgens mij word mijn cookie geset als de gebruiker op de link klikt, lijkt me niet eerder te kunnen ;) :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Trouwens, als je een subfolder dicht doet wordt ook de cookie gezet, lijkt me niet de bedoeling.

En je slaat in de cookie alleen de submenu's op?

En window.onload = function(){ show() }; word window.onload=show;

[ Voor 3% gewijzigd door André op 11-03-2004 23:52 ]


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Die onload laat ik zo, omdat er meerdere functies geladen moeten worden ;)

En ja in het cookie staat de waarde van het submenu, maar is er iemand die mij misschien een duwtje in de goede richting kan geven, want ik zit ff vast

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Ok heb het gevonden. Heb nu op elke pagina alle opties van het submenu in een array gezet. Daarboven heb ik in een variabele de locatie gezet. Nu via een for-loop kijken of de locatie overeen komt met een waarde uit de array, en dan het submenu weergeven.

I.i.g. bedankt voor de hulp :)
Pagina: 1