Javascript
Ging voor het eerst een proberen te werken met een menu dat 'geselecteerd' is als de pagina is geopend.
Het enige idee dat in mijn hoofd opkwam was met JS:
<script language="javascript" type="text/css">
function ChangeMenu(menu)
{
document.getElementByClass('actief')this.class = '';
document.getElementById(menu)this.class = 'actief';
}
</script>
En dan het menu:
<a href="?id=home" class="actief" id="Home">Home</a><br \>
<a href="?id=bestuur" class="" id="Bestuur">Bestuur</a><br \>
enz..
Op elke pagina roep ik dan dmv een onLoad de functie aan met desbetreffende id...
Maar zo werkt het niet... Heb al verschillende varianten geprobeert voor de class aanroepen en veranderen, want denk dat daar het probleem ligt. Maar het wil niet echt lukken.
Snapt iemand waarom niet? Of is er een veel makkelijkere manier om een menu aan te passen... (de class hoeft alleen maar op 'actief' komen te staan)
Edit: Site
Edit2: Sorry voor de slechte titel
Edit3: Test dingetje verandert naar normaal
Gewijzigd op 09/12/2005 19:32:00 door Willem Jan Z
onClick="ChangeMenu('Home')" voorde <a href met id Home.. etc
Overigens kan het met Javascript zijn dat je
= 'actief' en class = ''; moet veranderen. Ik heb zelf een invoerformulier gemaakt, met 3 tekstvelden waarin een standaardwaarde staat die wegmoet bij onfocus. Ik zal elke keer met het probleem met de quotes in de Javascript.. probeer na die = met dubbele quotes te werken als het zo niet werkt.
Gewijzigd op 09/12/2005 19:55:00 door Robert Deiman
Weet je wel zeker dat je dit zo wilt doen?
Kijk eens naar andere sites hoe hun het doen :)
Enne, sinds wanneer is javascript bij jou van het type text/css? ;)
Quote:
<script language="javascript" type="text/css">
Mooie design trouwens.
Ik roep hem aan als ik een pagina laad... De pagina's hebben ook nog subpagina's
En als ik dus via de adresbalk daar naartoe ga, moet hij ook die link actief maken, dus moet wel op de pagina gebeuren...
Sebastiaan:
Mooie design trouwens.
Tnx
Quote:
<script language="javascript" type="text/css">
Uhm... Sinds vandaag :D
Edit: Heb je een goed voorbeeld van een site dan? (Die bijvoorbeeld met tabbladen werkt ofzo...
Gewijzigd op 09/12/2005 19:59:00 door Willem Jan Z
probeer eens zonder (menu) (dus () )achter de functienaam en dan:
var menu = in je javascript
Had ik eerst wel, maar vond ik te veel gedoe om later links te maken enzo...
Die var menu geef ik dus mee met het onLoad attribuut:
onLoad="ChangeMenu('Bestuur');'
Waar bestuur dus de naam van div 'Bestuur' is.
en met die quotes dan? ik heb daar ook een hele tijd mee zitten klooien :S
Rond het Bestuur de quotes? Anders ziet hij het als var als ik ze er niet bij zet...
Edit:
@Sebastiaan: Nu ik type heb aangepast krijg ik wel foutmeldingen in de console... Maar wordt er niet wijzer van...
Missing ; before statement..
Gewijzigd op 09/12/2005 20:10:00 door Willem Jan Z
{
document.getElementByClass('actief')this.class = "";
document.getElementById(menu)this.class = "actief";
}
ik bedoelde met de " in plaats van ' eromheen.. daar deed die bij mij nogal moeilijk over.. weet niet waarom, maar met de " werkte het wel :S
EDIT:
Overigens let er niet op dat die de laatste " waarschijnlijk ' weergeeft, maar zorg er wel voor dat je zeker bent dat daar wel een " is getypt!
Gewijzigd op 09/12/2005 20:15:00 door Robert Deiman
Nog steeds niks...
Doe eens een print van je menu var in de functie.. ff controle of die goed is meegegeven.. :)
Willem-Jan:
Ik zie geen console fouten. FireFox 1.5 (Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8) Gecko/20051111 Firefox/1.5)@Sebastiaan: Nu ik type heb aangepast krijg ik wel foutmeldingen in de console... Maar wordt er niet wijzer van...
Missing ; before statement..
Missing ; before statement..
@Robert:
Krijg zelfs geen output geprint :S
document.write(menu);
en
document.write = menu;
geprobeert, beide werkte niet... (1 van beide sowieso niet... Maar ben niet zo JS expert :P)
Gewijzigd op 09/12/2005 20:23:00 door Willem Jan Z
de variabele menu wordt niet gevuld. Dit moet eerst worden opgelost, anders werkt het niet.
Je 1e document.write(menu); is de goede variant. Dus als die buiten je function staat en hij geeft niets weer is de var menu niet gevuld.
Kan je laten zien hoe die dat doet?
ModWiki.net
Bij Discussion en Article
@Willen-Jan: Missschien even kijken naar de tabblad effecten van Bij Discussion en Article
Zo roep ik hem aan...
Of kan onLoad niet op alle attributen worden toegepast?
Want als ik gewone tekst wil afdrukken, kan dat ook niet binnen de functie...
Kan je die onLoad niet in de body tag zetten?
Dat zal de fout zijn Willem-Jan. onLoad kan inderdaad niet bij de h1. Ik zou hem inderdaad in de body zetten, zoals sebastiaan al aangaf. Voor de body is het WEL een geschikte functie..
http://www.littledesign.nl/index.php?id=bestuur
Dit omdat de waarde in de functie per pagina anders moet zijn, en meerdere body's lijkt me niet echt netjes... (Is dat wel valid dan?)
Gewijzigd op 09/12/2005 20:39:00 door Willem Jan Z