jQuery UI switchClass()方法无法正常工作

jQuery UI switchClass()方法不切换类,而是执行一些不需要的动画,当我使用jquery.animate-enhanced.js进行硬件加速动画时,类与原始类保持相同。
有关如何修复它的任何想法?

我以前遇到过这个问题,浪费了很多时间试图弄清楚出了什么问题。

我仍然不知道为什么switchClass有时不起作用,但我确实有一个解决方法:

更换

 switchClass('circle','square'); 

 addClass('square').removeClass('circle'); 

希望有所帮助。

 $(function(){ $('#circle').click(function(){ $('.circle').switchClass('circle', 'square', 'slow'); $('.square').switchClass('square', 'circle', 'slow'); return: false }); }); 

在这个示例中单击#circle Div我将从所有对象中删除.circle类并将其替换为.square类。 如果没有删除.circle类,则删除.square类并替换为.circle类。 这是一种切换效果。

如果您不想切换,只需删除顶部或底部。

如果prb是

.switchClass不是一个函数

检查您是否在代码中链接effects.core.js

通过导航器中的控制台检查js,祝你好运,对我来说工作正常:)

请检查你是否添加了jQueryUi文件

  

我之前遇到过这个问题,但找不到解决方案。 然后我使用toggleClass()来解决问题。 这是一个例子:

如果一个元素在开头有X类,那么写:

 $(element).toggleClass("Y"); 

这将添加Y类。如果再次这样做,它将删除Y类。

参考: http : //api.jquery.com/toggleclass/

希望有所帮助。

我猜你想要在两个class级之间切换。 如果是这种情况,您可以使用toggleClass函数。

  //first you start with one of the classes in html: 
//then in js you do: var element = ...; $(element).toggleClass('foo bar');

这将切换’foo’和’bar’。 由于foo已经存在,它将删除它并添加条形码。 在下一个调用栏将出现,所以我将删除它并添加foo。 等等。

如果有什么不清楚这里是一个jsfiddle示例: https ://jsfiddle.net/09qs86kr/1/

确保您使用的类没有任何“!important”属性。 我投资并发现jquery UI开关类不适用于带有“!important”标签的属性。

原因:考虑到您之前的类具有样式“padding:0”而您的新类具有“padding:100”。 您已将switchClass持续时间添加为100毫秒。 jquery将为此做的是,它将通过每1 ms增加填充“1”来为元素添加样式。 但是,由于前一个类仍然存在于带有“padding:0!important”的元素中,在10 ms之后,jquery添加的“padding:10”样式不会影响UI。 100 ms后,jquery将执行removeClass(“previousClass”)和addClass(“newClass”)。 这将导致UI中反映的样式的即时更改。

这是我发现的解释。 请让我知道你们对此的看法。