一旦toggleClass完成,我怎么能做一个功能?我尝试过以下但没有运气:
$("#loader").toggleClass('fadeOut', function () {
alert('a');
});
答案 0 :(得分:75)
jQuery有一个promise方法,它返回一个promise,该promise在所选元素的所有运行动画完成后解析。此时,您可以绑定到它的完成方法。
$("#loader").toggleClass('fadeOut',600).promise().done(function(){
console.log('a');
});
http://jsfiddle.net/skram/4x76J/
注意:使用toggleClass
的动画需要jQuery UI。
答案 1 :(得分:1)
toggleClass
会立即执行,因此您不需要toggleClass
的回调,只需将alert('a')
放入下一行,该行将在toggleClass
执行后发出警报
编辑:看起来你想要jQuery UI效果 - toggleClass
但遗憾的是它没有回调功能。
也许您应该编写自己的切换功能。请参阅下面的fadeIn / fadeOut切换,
var $loader = $("#loader");
if ($loader.is(':visible')) {
$loader.fadeOut(100, function () {
alert('fade out complete');
});
} else {
$loader.fadeIn(100, function () {
alert('fadeIn complete');
});
}
答案 2 :(得分:-1)
$("#loader").stop().fadeTo(400,0, function() {
$(this).toggleClass('fadeOut').hide(); // exec after is faded out.
alert(' ta-da!');
});
答案 3 :(得分:-1)