.is (": hover") ist seit jQuery 1.9 nicht mehr zu reparieren

9

Wenn Sie $(...your selector here...).is(":hover") ausführen, gibt jQuery vor 1.9.1 die richtige Antwort, während jQuery 1.9.1 Ihnen Folgendes sagt:

  

Fehler: Syntaxfehler, nicht erkannter Ausdruck: nicht unterstützter Pseudo: hover

Hier ist eine Problemumgehung (Antwort nicht notwendig.)

Ссылка

kurze Antwort, überprüfen Sie, ob

%Vor%

hat die Länge 1 und enthält das betreffende Element.

Es handelt sich nicht darum, eine Aktion über den HOVER auszuführen - dafür verwenden Sie einfach .hover () DARÜBER HINAUS, ZU EINEM ARBITRARPUNKT IN DER ZEIT, FINDEN SIE HERAUS, OB EIN ELEMENT VERSCHIEDEN IST ODER NICHT

    
mathheadinclouds 11.05.2013, 13:11
quelle

3 Antworten

13

Angenommen, Ihr Selektor ist #myid , verwenden Sie $('#myid:hover') anstelle von .is() .

Wenn Sie $(this) oder eine Variable verwenden, verwenden Sie myVar.filter(':hover') .

    
Mooseman 11.05.2013, 13:14
quelle
0

Die obige Problemumgehung ist jedoch ungeeignet, wenn Sie Elemente, die jQuery.fn.is () verwenden, mit einem zusammengesetzten Selektor vergleichen, der vorher nicht bekannt ist und der mehreren Elementen im übergeordneten Container entsprechen kann.

Beispiel wird die gleiche Ausnahme ausgelöst, wenn selector in style_get () unten ist gleich: ".mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer: schweben .mCSB_dragger .mCSB_dragger_bar"

.. weil Hover nicht in Sizzle.selectors.pseudos oder Sizzle.selectors.setFilters (jquery-2.1.4, Zeile 1764) definiert ist.

%Vor%     
luxigoo 01.06.2015 14:40
quelle
0

Versuchen Sie, anonyme Funktion in .filter ()

zu geben

Ich denke, meine Lösung wird Ihnen helfen:

%Vor%

Auch können Sie mein GitHub-Thema sehen: Ссылка

    
Igor Ostapchuk 04.01.2018 21:29
quelle

Tags und Links