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

时间:2011-10-28 06:46:22

标签: javascript jquery css css3

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

7 个答案:

答案 0 :(得分:25)

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

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

替换

switchClass('circle','square');

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

希望有所帮助。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:2)

如果prb是

  

.switchClass不是函数

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

通过导航器中的控制台检查js,祝他好运,对我来说没问题:)

答案 3 :(得分:1)

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

<script type="text/javascript" src="https://code.jquery.com/ui/1.8.23/jquery-ui.min.js"></script>

答案 4 :(得分:0)

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

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

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

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

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

希望有所帮助。

答案 5 :(得分:0)

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

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

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

如果某些事情不明确,这里有一个jsfiddle示例:https://jsfiddle.net/09qs86kr/1/

答案 6 :(得分:0)

确保您使用的课​​程没有任何&#34;!important&#34; 属性。 我已投资并发现jquery UI切换类对于&#34;!important&#34;的属性不起作用。标签

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

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