当我在jQuery中使用淡入淡出/滑动/动画函数时,会为应用效果的每个元素多次调用回调。当然,这是设计出来的。我只想知道最后一个回调是什么时候调用的。
这是我想出来的-它淡出所有的div,并在最后一个回调被触发时显示一个alert()。
$("div").fadeOut(1000, function ()
{
if ($("div").index($(this)) == $("div").length-1)
alert("this is the final callback");
});
有没有更简单的方法来检查哪个回调是最后一个,或者这是唯一的方法?
发布于 2009-05-26 08:39:47
这将在最后一个元素上的fadeOut被调用时生成警报。这不一定是最后一个fadeOut。
var numDivs = $('div').length;
$('div').fadeOut(1000, function() {
if( --numDivs > 0 ) return;
alert('this is the final fadeout to complete');
});
在JSFiddle上查看它
发布于 2011-09-02 05:34:10
试着看看the jQuery documentation for .promise()
这应该是可行的:
$('div').fadeOut(1000).promise().done(function() {
alert('all done');
});
像往常一样,关于这一点的jQuery文档非常模糊。但我不确定我能不能
发布于 2009-05-26 08:19:26
$("div:not(:last)").fadeOut(1000);
$("div:last").fadeOut(1000, function() {
alert("Hey!");
});
https://stackoverflow.com/questions/909526
复制相似问题