jQuery UI switchClass () -Methode funktioniert nicht ordnungsgemäß

7

jQuery UI switchClass() Methode schaltet die Klasse nicht um, sondern führt einige unerwünschte Animationen aus und die Klasse bleibt dieselbe wie die ursprüngliche, wenn ich jquery.animate-enhanced.js für hardwarebeschleunigte Animationen verwende.
Irgendeine Idee darüber, wie ich es beheben kann?

    
Devashish Dixit 28.10.2011, 06:46
quelle

7 Antworten

21

Ich habe dieses Problem schon einmal gesehen und viele Stunden damit verbracht, herauszufinden, was schief gelaufen ist.

Ich weiß immer noch nicht, warum switchClass manchmal nicht funktioniert, aber ich habe einen Workaround:

Ersetzen

%Vor%

mit

%Vor%

Ich hoffe, das hilft.

    
bergie3000 08.06.2012, 06:05
quelle
2
%Vor%

In diesem Beispiel auf den Klick der #circle Div entferne ich die .circle Klasse von allen Objekten und ersetze sie durch die .square Klasse. Wenn die Klasse .circle nicht entfernt werden soll, wird die Klasse .square entfernt und durch die Klasse .circle ersetzt. Es ist ein Toggle-Effekt.

Wenn Sie den Umschalter nicht möchten, entfernen Sie einfach den oberen oder unteren.

    
Jacob9706 16.11.2011 23:07
quelle
2

wenn das PRB

ist
  

.switchClass ist keine Funktion

Überprüfen Sie, ob Sie die effects.core.js in Ihrem Code verlinken

Überprüfen Sie, dass mit der Konsole in Ihrem Navigator für js, viel Glück, es ist gut für mich arbeiten:)

    
Yassine Sedrani 30.01.2015 11:45
quelle
1

Bitte prüfen Sie, ob Sie die jQueryUi-Datei hinzugefügt haben

%Vor%     
arsh 31.01.2016 13:38
quelle
0

Ich habe mich vorher mit diesem Problem konfrontiert, konnte aber keine Lösung finden. Dann habe ich toggleClass () benutzt, um das Problem zu lösen. Hier ist das Beispiel:

Wenn ein Element zu Beginn die Klasse X hat, schreiben Sie:

%Vor%

Dadurch wird die Klasse Y hinzugefügt. Wenn Sie dies erneut tun, wird die Klasse Y entfernt.

Referenz: Ссылка

Ich hoffe, das hilft.

    
Ismail Rubad 17.12.2016 16:27
quelle
0

Ich vermute, du willst zwischen zwei Klassen wechseln. Wenn dies der Fall ist, können Sie dies mit der Funktion toggleClass tun.

%Vor%

Dies schaltet sowohl 'foo' als auch 'bar' um. Da foo bereits vorhanden ist, entfernt es es und fügt bar hinzu. Auf der nächsten Anrufleiste wird anwesend sein, also werde ich es entfernen und foo hinzufügen. Und so weiter.

Wenn etwas nicht klar ist, ist hier ein Beispiel: Ссылка

    
Bojidar Stanchev 08.02.2017 14:47
quelle
0

Stellen Sie sicher, dass die Klassen, die Sie verwenden, keine "! wichtig" Eigenschaften haben. Ich habe investiert und festgestellt, dass Jquery UI Switch-Klasse nicht für Eigenschaften mit "! Wichtige" Tags funktioniert.

Grund: Beachten Sie, dass Ihre vorherige Klasse den Stil "padding: 0" hatte und Ihre neue Klasse "padding: 100" hat. Sie haben die switchClass-Dauer für 100 ms hinzugefügt. Was jquery dafür tun wird, ist, dass es Ihrem Element einen Stil hinzufügt, indem es das Padding alle 1 ms um "1" erhöht. Aber da die vorherige Klasse immer noch in dem Element mit einem "padding: 0! Important" vorhanden ist, wirkt sich der von "jquery" hinzugefügte "padding: 10" -Stil nach 10 ms nicht auf die UI aus. Nach 100 ms führt jquery removeClass ("previousClass") und addClass ("newClass") aus. Dies führt zu einer sofortigen Stiländerung, die sich in der Benutzeroberfläche widerspiegelt.

Das ist die Erklärung, die ich herausfinde. Bitte lass mich wissen, was ihr darüber denkt.

    
ARNAB PRADHAN 23.08.2017 08:56
quelle

Tags und Links