首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery回调被多次调用

jquery回调被多次调用
EN

Stack Overflow用户
提问于 2009-05-26 08:11:26
回答 3查看 10.7K关注 0票数 17

当我在jQuery中使用淡入淡出/滑动/动画函数时,会为应用效果的每个元素多次调用回调。当然,这是设计出来的。我只想知道最后一个回调是什么时候调用的。

这是我想出来的-它淡出所有的div,并在最后一个回调被触发时显示一个alert()。

代码语言:javascript
复制
$("div").fadeOut(1000, function ()
{
     if ($("div").index($(this)) == $("div").length-1)
          alert("this is the final callback");
});

有没有更简单的方法来检查哪个回调是最后一个,或者这是唯一的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-26 08:39:47

这将在最后一个元素上的fadeOut被调用时生成警报。这不一定是最后一个fadeOut。

代码语言:javascript
复制
var numDivs = $('div').length;
$('div').fadeOut(1000, function() {
  if( --numDivs > 0 ) return;
  alert('this is the final fadeout to complete');
});

JSFiddle上查看它

票数 18
EN

Stack Overflow用户

发布于 2011-09-02 05:34:10

试着看看the jQuery documentation for .promise()

这应该是可行的:

代码语言:javascript
复制
$('div').fadeOut(1000).promise().done(function() {
   alert('all done');
});

像往常一样,关于这一点的jQuery文档非常模糊。但我不确定我能不能

票数 48
EN

Stack Overflow用户

发布于 2009-05-26 08:19:26

代码语言:javascript
复制
$("div:not(:last)").fadeOut(1000);
$("div:last").fadeOut(1000, function() {
    alert("Hey!");
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/909526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档