32

切换类完成后如何执行功能?我尝试了以下但没有运气:

$("#loader").toggleClass('fadeOut', function () {
    alert('a');
});
4

2 回答 2

75

jQuery 有一个 Promise 方法,它返回一个 Promise,该 Promise 在选定元素上的所有运行动画完成后解析。此时,您可以绑定到它的 done 方法。

$("#loader").toggleClass('fadeOut',600).promise().done(function(){
    console.log('a');
});

http://jsfiddle.net/skram/4x76J/

注意:使用的动画toggleClass需要 jQuery UI。

于 2012-04-25T18:48:13.787 回答
1

toggleClass立即执行,因此您不需要回调toggleClass,只需将alert('a')放在下一行,它会在toggleClass执行后发出警报。

编辑:看起来你想要 jQuery UI 效果 -toggleClass不幸的是它没有回调函数。

可能您应该编写自己的切换功能。请参阅下面的淡入/淡出切换,

var $loader = $("#loader");
if ($loader.is(':visible')) {
  $loader.fadeOut(100, function () {
      alert('fade out complete');
  });
} else {
  $loader.fadeIn(100, function () {
      alert('fadeIn complete');
  });
}
于 2012-04-25T18:17:54.157 回答