Jquery li onclick-Klasse hinzufügen
Ich habe ein Menü in meinem master-Seite.
<ul>
<li><a href="."><span>Home</span></a></li>
<li><a href="contactus.aspx"><span>contact us</span></a></li>
</ul>
wenn ich auf den Menüpunkt, den ich einstellen will css-Klasse mit Hilfe von jquery
$(function () {
$("li:first-child").addClass("test");
$('li').click(function () {
$(this).addClass('test');
});
});
css
.test {background-color:Red;}
beim Klick auf das Menü, es zeigt die hintergrund-Farbe, aber dann verschwindet es. wie mache ich es bleiben solange aktiv, bis ein anderes Menü geklickt wird?
danke
- Getestet habe ich es im FF, Chrome und IE7,8. Fein gearbeitet. jsfiddle.net/9qgzk
- Haben Sie irgendwelche anderen code bewirken diese Liste posten?
- Nicht den "Kontakt" - link navigieren Sie zu einer anderen Seite? Sie müssten, um den hintergrund wieder auf die andere Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE2: das ist kein javascript-problem
Dies ist eine böse Vermutung auf, wie der server-Seite könnte für Sie, abhängig von Ihrer server-side-Technologie.
ServerSizeLogic.SelectedMenu("Home")
oder was auch immer Sie verwenden, entweder eine leere Zeichenfolge zurückgeben oder "class='test'". Nur stellen Sie sicher, dass nur eine von li Elementen wird der Stil und das entfernen der client-seitige codeUPDATE: offensichtlich, sobald Sie navigieren Weg von der Seite das gewünschte element ausgewählt werden, muss von dem server (es sei denn, Sie sind mit ajax), in dem cast einfach loszuwerden, die
li:first-child
und stellen Sie die Klasse direkt in Ihrem anzeigen-code auf der aktuellenli
elementOriginal:
Wie über diese kleine fiddle http://jsfiddle.net/LmUrP/
html
href='#'
basierend auf was? Sie wissen, dass die Seite neu laden mit dem original html.it shows the background color but then it disappears.
und das ist, weil die Seite "neu geladen"So werden Sie in der Lage, markieren Sie die "current list-item" basiert auf der aktuellen Seite url
Haben Sie zum testen auf die url laden:
haben Sie Ihr html so:
beachten Sie die
/
am Anfang des href-Attribut Wert!das ist, weil
location.pathname
gibt immer einen absoluten Pfad.hier ist ein Turnschuh http://jsfiddle.net/unloco/29E23/
ich schrieb
href="/_display/"
denn das ist die url der jsfiddle-display iframe !ABER wenn Ihre Seite in
http://domain.com/folder/page.php
haben Sie zu schreibenhref='/folder/page.php'
zu haben, das richtige Verhalten!/
an das href-Verknüpfungen angesichts der Tatsache, dass es war ein relativer link?