Har gjort en egen meny i sidhuvudet där jag vill att en klass skall läggas till när man klickar på länkarna där så att jag då kan ändra bakgrunden på den som är "selected". html-koden ser ut såhär:
<script type="text/javascript">
$(document).ready(function(){
$("#main_nav ul li a").click(function (){
$(this).addClass("selected");
}, function () {
$(this).removeClass("selected");
});
});
</script>
Men nu läggs bara klassen till just när man klickar. Jag vill att klassen ska vara där tills man klickar på nån annan länk. Och när man klickar skall ju såklart klassen "selected" tas bort från den länken i menyn som har det innan.
Dessutom vill jag att när man klickar var som helst på sidan förutom på länken till "Kampanjer" eller "Köpvillkor" så ska "Hem" bli selected. För detta bör man väl köra nån slags if sats i jQuery koden antar jag.
Du få leta upp alla $("#main_nav ul li a") när du klickar på dom och ta bort css klassen.
var menuLinks = $("#main_nav ul li a");
menuLinks.click(function () {
menuLinks.removeClass("selected");
$(this).addClass("selected");
});
Dock så måste elementen finnas, de kan inte skapas fler list element efter att DOM-readyn är körd, om du kör en senare version av jquery så kan du använda dig av live eller delegate.
Ja detta blir nästan rätt.. hehe. När jag klickar på länken så får den länken jag klickar på klassen selected och bakgrunden ändras men sen går selected tillbaka "Hem"-länken. Om jag t ex. klickar på kampanjer så vill jag att selected klassen skall stanna där så att man ser att man är på just kampanjer. Klickar på sedan på köpvillkor så ska den bli selected o stanna där. Klickar jag på nån annan länk utanför denna menyn skall hem få klassen selected igen.
loopar igenom alla a-element och kontrollera om window.location är densamma som this.href, om ja => sätt klass till selected. Är det det du är ute efter?
Nice! Nu blir det nästan helt rätt. Jag har ju markerat "hem" som default o lagt till klassen selected själv där. Men den ligger ju kvar hela tiden. Hur gör för den skall tas bort när jag klickar på t ex. "kampanjer"?
Kanon! Bara en liten detalj kvar nu... hehe.. när jag klickar på andra länkar utanför menyn så blir ingen av länkarna i menyn selected. Vill helst att "Hem" ska va selected hela tiden förutom när man är på "kampanjer" eller "köpvillkor".
Ja, med serverkod, det är omöjligt att veta vad "någonsida.html" referera till i var den ligger i en av huvudmenyn om "någonsida.html" inte finns där. Eller så säger du att hem alltid är selected och aldrig plockar bort ".selected" förrän den hittar det i menyn.