2013-05-13 14 views
5

Ist es überhaupt möglich, die Pseudoklassen mit jQuery zu ändern? Gibt es einen Workaround, um dies zu erreichen?Attribut der CSS-Pseudoklassen ändern (: Hover) mit jQuery

+0

es nicht möglich ist jQuery für solche Fälle –

+0

ein paar zu verwenden Vor Tagen habe ich eine jQuery-ähnliche Bibliothek gefunden, um auf Stylesheets zuzugreifen, aber jetzt kann ich sie nicht mehr finden, alles, was ich finde, sind Stylesheet-Switcher. – Barmar

+0

Nicht sicher, ich verstehe. Könnten Sie das näher ausführen? Was genau willst du ändern? –

Antwort

0

Nun, ich die folgende Funktion erstellt, um meine Hover-Klasse zu ändern

var setPseudoClass = function (rule, prop, value) 
    { 
     var sheets = document.styleSheets; 
     var slen = sheets.length; 
     for (var i = 0; i < slen; i++) 
     { 
      var rules = document.styleSheets[i].cssRules; 
      if (rules) 
      { 
       var rlen = rules.length; 
       for (var j = 0; j < rlen; j++) 
       { 
        if (rules[j].selectorText && rules[j].selectorText.indexOf(rule) > 0) 
        { 
         alert(rules[j].selectorText); 
         rules[j].style[prop] = value; 
        } 
       } 
      } 
     } 
    } 
2

Versuchen Sie, einen Klassenselektor für Ihr CSS zu erstellen, und schalten Sie die Klasse für das Element, für das Sie den Stil ändern möchten, ein und aus, wenn Sie den Mauszeiger darüber bewegen.

Hier sind andere Vorschläge: Setting CSS pseudo-class rules from JavaScript

Dynamic CSS pseudo class styles with jQuery

+0

Definitiv dies. Die Verwendung von Javascript zum Ändern einzelner CSS-Eigenschaften ist sehr unordentlich. Wechseln Sie einfach die Klasse! – benastan

+0

Das Problem beim Ändern der Klasse besteht darin, dass Sie möglicherweise einen Farbwähler verwenden. – Bing