如何在另一个功能完成之前停止执行功能?
$('#div').load( 'sub.html', function() {
//Do this once done loading the sub.html file
setTimeout(function() {
//Run SomeFunction(); before doing anyhing else
$('#tabsWrapper').removeClass('ajaxLoading');
$('#tabsWrapper #loaderDiv').fadeIn(500);
} , 1000);
});
我想确保在SomeFunction()
等之前完成$('#tabsWrapper').removeClass('ajaxLoading');
。
任何建议如何实现?任何帮助非常感谢。
答案 0 :(得分:2)
$('#div').load( 'sub.html', function(response, status) {
if(status=="success"){
//do your stuff here ..its loaded
}
});
答案 1 :(得分:2)
使用回调方法。
请参阅JQuery API
答案 2 :(得分:1)
从SomeFunction()
返回一些值,并将其置于以下状态:
var result = null; // important to put it here eg before setTimeout
//Do this once done loading the sub.html file
setTimeout(function() {
result = SomeFunction();
if (result === 'whatever that function returns') {
$('#tabsWrapper').removeClass('ajaxLoading');
$('#tabsWrapper #loaderDiv').fadeIn(500);
}
} , 1000);
更好的方法是使用类似这样的自调用匿名函数:
(function foo(){
doStuff;
setTimeout(foo, 500);
})()