Nach dem Ändern von CSS funktioniert Hover nicht

8

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?

Ссылка

    
good_evening 17.02.2012, 16:32
quelle

2 Antworten

19

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.

%Vor%

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%

%Vor%

DEMO: Ссылка

In Bezug auf Ihr Update können Sie keine Pseudo-Selektoren wie :hover für die DOM-Auswahl verwenden.

    
2 revsuser1106925 17.02.2012, 16:40
quelle
2

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ß".

    
Quentin 17.02.2012 16:35
quelle

Tags und Links