jQuery UI switchClass()
方法不会切换类,而是执行一些不需要的动画,当我使用jquery.animate-enhanced.js
进行硬件加速动画时,类与原始类保持一致。
关于如何修复它的任何想法?
答案 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中反映出的样式的即时更改。
这是我发现的解释。请让我知道你们对此的看法。