我有以下jQuery脚本:
function fctSaveSuccess(data) {
fctHideLoadingDlg();
alert('continue...');
...
}
function fctHideLoadingDlg(disableBtn) {
$("#loading").fadeTo(5000, 0.5, function () {
$("#loading").dialog('destroy').remove();
});
}
我想要实现的是让我的加载div(一种等待的弹出窗口)慢慢消失。但是它不起作用,因为当fctHideLoadingDlg被调用时,下面的代码继续被执行,即使我已经设置了5000的衰落...
任何想法如何防止这种情况?
感谢。
答案 0 :(得分:0)
这很正常。 fctSaveSuccess
的执行不会被阻止,因为fctHideLoadingDlg
会在致电fadeTo
后立即返回。 fadeTo
传递一个回调,它将在完成后运行,但不会阻止。
您可以在代码中使用相同的回调路由。函数是Javascript中的对象,因此它们也可以作为参数轻松传递:
function fctSaveSuccess(data) {
var afterHide = function () {
alert('continue...');
/* rest of your code */
};
fctHideLoadingDlg(afterHide);
}
function fctHideLoadingDlg(callback, disableBtn) {
$("#loading").fadeOut(5000, function () {
callback();
$("#loading").dialog('destroy').remove();
});
}