Nach dem Ausführen: $('.bar').css({'color':'#fff'});
Hover für .bar funktioniert nicht mehr. Warum?
Auch $('.bar:hover').css({'color':'#fff'});
ändert nicht die Farbe des Schwebeflugs, warum? Was vermisse ich?
Sie haben nicht definiert, was Sie mit "Hover" meinen, aber wenn Sie über CSS :hover
sprechen, dann liegt das daran, dass Inline-Stile (wie von .css()
festgelegt, Stylesheet-Stile überschreiben)
Sie können !important
zu Ihrer CSS-Definition hinzufügen, um das Inline-Element zu überschreiben.
Ich glaube nicht, dass dies mit älteren IE funktioniert.
DEMO: Ссылка
Eine andere (und wohl bessere) Lösung wäre, .addClass()
anstelle von .css()
zu verwenden, um den Stil zu ändern. Dann können Sie alles in Ihrem CSS erledigen (außer das Hinzufügen / Entfernen der Klasse natürlich) .
%Vor%
DEMO: Ссылка
In Bezug auf Ihr Update können Sie keine Pseudo-Selektoren wie :hover
für die DOM-Auswahl verwenden.
In der Kaskade werden die Regeln im Stilattribut die mit einem Selektor angewendeten Regeln übertreffen.
Die Methode jQuery css
ändert das Attribut style.
Halte deine CSS und JS getrennt. Verwenden Sie JS zum Bearbeiten von Hinzufügen und Entfernen von Klassen aus dem HTML und wenden Sie Ihr CSS mithilfe eines Klassenselektors an. (Stellen Sie sicher, dass die :hover
-Regel immer noch eine spezifische ausreichende Auswahl hat).
Als schnelle und schmutzige Lösung können Sie auch Ihre :hover
-Regeln !important
, aber Sie sollte nicht .
$('.bar:hover').css({'color':'#fff'});
ändert auch nicht die Farbe des Hover, warum?
Die Selektor-Engine von jQuery passt Elemente an, das Stylesheet wird nicht geändert. Wenn dies unterstützt würde, würden Sie sagen: "Wenn dieser Code ausgeführt wird, mache ich die .bar-Datei auf weiß" und nicht "Wenn ich auf eine .bar-Datei zeige, mache sie weiß".
Tags und Links jquery