2012-04-03 4 views
0

Ich verwende den folgenden Code, um eine ul-basierte Dropdown-Menü zu öffnen, habe ich die CSS eingerichtet, so dass die ' button 'ändert die Farbe, wenn Sie den Mauszeiger bewegen, aber ich brauche es, um diese Farbe zu behalten, während das Menü geöffnet ist.Mit Jquery .Toggle(), um ein Dropdown-Menü zu öffnen, benötigen Sie den Link, um Farbe zu ändern, wenn geklickt

<script> 
$(document).ready(function() { 

$('#nav li').toggle(
    function() { 
     //show its submenu 
     $('ul', this).slideDown(100); 
     $('#libg').toggleClass('clicked'); 
    }, 
    function() { 
     //hide its submenu 
     $('ul', this).slideUp(100); 
     $('#libg').toggleClass('notclicked'); 
    } 
); 
}); 
</script> 

Es gibt keine Fehler in Firebug arbeiten die Rutsche Ereignisse völlig in Ordnung, vielleicht bin ich nicht das Richtige nennen? #libg ist die ID der li, die den 'button' enthält. Die clicked/notclicked Klassen ändern nur die Hintergrundfarbe.

http://jsfiddle.net/5tV45/

+1

[jsFiddle] (http://jsfiddle.net) bitte besser sein könnten, bitte? –

+0

Das Anzeigen des HTML wäre nützlich. – j08691

+0

http://jsfiddle.net/5tV45/ – MWhitmore

Antwort

1

Ich erwarte, dass Sie wollen, dass die clicked Klasse beiden Male wechseln, so dass, wenn es entfernt wird, ist es im Bundesstaat notclicked

// replace this... 
    // $('#libg').toggleClass('notclicked'); 
    // with this... 
    $('#libg').toggleClass('clicked'); 
+0

Dies und der obige Post, schien nichts zu tun. Ich habe die jsfiddle in einem Kommentar des ursprünglichen Beitrags veröffentlicht, wenn es hilft. – MWhitmore

+0

Das Javascript funktioniert, die Stilregel ist nicht spezifisch genug und wird überschrieben. Probieren Sie: 'li # libg.clicked li a {farbe: #fff; Hintergrundfarbe: # 839367; } ', die auf die Anker innerhalb der Listenelemente innerhalb der angeklickten Elemente mit ID libg wirkt. –

+0

Ich bin mir nicht sicher, was Sie meinen, wenn ich diese Zeile in die CSS setzen, macht es einen guten Teil der Dropdown-Farbe ändern, die ich nicht will. – MWhitmore

0

Sie müssen nur Farbe in Ihrem ‚geklickt‘ Klasse angeben und Knebel es in beiden Funktionen:

$('#nav li').toggle(
    function() { 
     //show its submenu 
     $('ul', this).slideDown(100); 
     $('#libg').toggleClass('clicked'); 
    }, 
    function() { 
     //hide its submenu 
     $('ul', this).slideUp(100); 
     $('#libg').toggleClass('clicked'); 
    } 
); 

In Ihrer Version ‚geklickt‘ Klasse auf das Element Menü links, wenn Sie Schließen Speisekarte.

+0

Habe es leider nicht anders gemacht. – MWhitmore

0

Können Sie die Farbe in der Funktion gerade eingestellt?

$(this).css({color: '#f00'}); 

... die Farbe zu setzen und ...

$(this).css({color: ''}); 

... es unscharf zu schalten. Obwohl Sie mit add/removeClass

Verwandte Themen