我有一个包含大量 jQuery 的 showMain()
函数 .show("slow", callback)
方法,并且这些回调中的每一个仅在相应的慢速“动画”完成时触发。如何编写一个 showMain(callback)
函数,它的回调只会被触发 一次 并且在 所有 动画完成之后?
理论上,假设我有这组函数
function foo1(callback){
//do something
callback();
}
function foo2(callback){
//do something
callback();
}
function foo(callback){
foo1(callback);
foo2(callback);
}
foo(function(){
alert("Hello");
});
如何编写一个只调用其回调的函数一次,并且最后次执行?
如果我这样写,回调会被触发两次。
最佳答案
如果你知道调用 show 的次数,如何维护一个计数器,
var callback = function() {....} // the function you want to execute when all done
var itemsToShow = 4; // just an example
var slowCallback = function(){
itemsToShow--;
if(itemsToShow===0) {
callback();
}
};
$(...).show('slow', slowCallback);
$(...).show('slow', slowCallback);
$(...).show('slow', slowCallback);
$(...).show('slow', slowCallback);
注意:只有当您知道将调用多少次 .show
时它才会起作用,否则将计数器初始化为 0
并递增每个 show
调用
关于javascript - 如何在具有多个回调的函数中获取最后一个回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45111520/