In jQuery muss ich eine if-Anweisung ausführen, um festzustellen, ob $ this nicht die Klasse '.selected' enthält.
$(".thumbs").hover(function(){
$(this).stop().fadeTo("normal", 1.0);
},function(){
$(this).stop().fadeTo("slow", 0.3);
});
Wenn diese Funktion ausgeführt wird (beim Hover), möchte ich die Überblendungen nicht ausführen, wenn die Klasse '.selected' an das div angehängt wurde. Dies bedeutet, dass das Bild die volle Deckkraft hat, um anzuzeigen, dass es ausgewählt ist. Bei Google ohne Glück gesucht, obwohl es eine einfache Frage ist, wie man eine IF-Anweisung verwendet ...
.not( ".selected" )
und es funktioniert genauso. Geniales Zeug.jQuery verfügt über die Funktion hasClass (), die true zurückgibt, wenn ein Element in der umschlossenen Menge die angegebene Klasse enthält
Schauen Sie sich mein Anwendungsbeispiel an
Hier ist der Code dafür
BEARBEITEN:
Das ist nur eine Vermutung, aber versuchen Sie so etwas zu erreichen ?
jQuery Code ist hier-
quelle
Ich denke, der Autor suchte:
quelle
$(this).not('.selected').length
als Boolescher Wert verwenden, wenn Sie es wirklich wollten, aber das ist ein wenig ausführlich.Wenn Sie überprüfen, ob ein Element eine Klasse hat oder nicht, stellen Sie sicher, dass Sie nicht versehentlich einen Punkt in den Klassennamen eingefügt haben:
Nachdem ich lange auf meinen Code gestarrt hatte, wurde mir klar, dass ich das getan hatte. Ein kleiner Tippfehler wie dieser brauchte eine Stunde, um herauszufinden, was ich falsch gemacht hatte. Überprüfen Sie Ihren Code!
quelle
Wenn Sie in jedem Teil des Hovers ein if einfügen, können Sie die ausgewählte Klasse dynamisch ändern, und der Hover funktioniert weiterhin.
Als Beispiel habe ich auch einen Klick-Handler angehängt, um die ausgewählte Klasse auf das angeklickte Element umzuschalten. Dann feuere ich das Hover-Ereignis auf das vorherige Element ab, damit es ausgeblendet wird.
quelle
Sie können auch die Methoden addClass und removeClass verwenden, um zwischen Elementen wie Registerkarten zu wechseln.
z.B
quelle
Wie wäre es, wenn Sie anstelle eines if innerhalb des Ereignisses das Ereignis aufheben, wenn die ausgewählte Klasse angewendet wird? Ich vermute, Sie fügen die Klasse irgendwo in Ihren Code ein, sodass das Auflösen des Ereignisses dort folgendermaßen aussehen würde:
Der einzige Nachteil ist, dass Sie das ausgewählte Hover-Ereignis erneut abonnieren müssen, wenn Sie die ausgewählte Klasse jemals aus dem Element entfernen.
quelle