我有以下功能(我从中间删除了对我的问题不重要的代码):
function shadowBoxRefresh(){
$("#sb-nav-next, #sb-nav-previous").click(function(){
$('#sb-container').addClass("visibility_stay");
$('#sb-overlay').addClass("opacity_stay");
Shadowbox.close();
Shadowbox.clearCache();
shadowBoxSetup();
setTimeout("Shadowbox.open(c)", 400)
$('#sb-container').removeClass("visibility_stay");
$('#sb-overlay').removeClass("opacity_stay");
}
});
}
我的问题是,我需要这部分:
$('#sb-container').removeClass("visibility_stay");
$('#sb-overlay').removeClass("opacity_stay");
在函数的其余部分完成后触发。我想知道回调是否可以完成这项工作,但我对回调的了解还不够深,不知道如何实现它。
非常感谢您的帮助。
最佳答案
如果“在函数的其余部分之后”是指 0.4 秒后发生的“在 Shadowbox.open(c) 之后”,那么请执行以下操作:
function shadowBoxRefresh(){
$("#sb-nav-next, #sb-nav-previous").click(function(){
$('#sb-container').addClass("visibility_stay");
$('#sb-overlay').addClass("opacity_stay");
Shadowbox.close();
Shadowbox.clearCache();
shadowBoxSetup();
setTimeout(function () {
Shadowbox.open(c);
$('#sb-container').removeClass("visibility_stay");
$('#sb-overlay').removeClass("opacity_stay");
}, 400);
}
});
}
关于javascript - 将 jQuery 代码设置为在函数完成后触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382497/