gpt4 book ai didi

javascript - 如何在继续执行其他功能之前完全完成一项功能?

转载 作者:行者123 更新时间:2023-11-30 09:03:32 24 4
gpt4 key购买 nike

虽然我可以找到有关如何重定向页面的帮助,但找不到符合我的情况的帮助。

在重定向到表单的“操作”链接之前,我想淡出弹出窗口(其中有一个表单)。

我在单独的函数中有淡出,因为该函数更复杂并且按次数调用。

我的 jquery 代码:

    $('form').submit(function(e){
function(e){
hidePopup()
,function(e){
window.location.href = $('form').attr('action');
};};

});

//hiding popup
function hidePopup(){
$(".popup").fadeOut("slow");
};

最佳答案

fadeOut接受回调函数作为第二个参数。该回调在完全消失后执行。所以只需使用:

$(".popup").fadeOut("slow", function(){//Executes after faded out//});

在您的代码中,我建议您重写您的hidePopup 函数

function hidePopup(callback){
$(".popup").fadeOut("slow",callback);
};

然后像这样执行

hidePopup(function(){
window.location.href = $('form').attr('action');
});

更新您可以使用以下代码检查您是否传递了有效的回调:

function hidePopup(callback){
if (typeof(callback) =='function')
$(".popup").fadeOut("slow",callback);
else
$(".popup").fadeOut("slow");
};

这是一个可靠的检查,可确保您传递了一个有效的回调(好吧,由于 JS 不是严格类型的语言,您不能确定此函数具有正确的签名,但是那不在那个问题之内)。

如果您绝对确定您将始终传递 callbackundefined 并且您懒得希望少输入 20 个字符,您可以简化 if (typeof (callback) =='function')if (callback)。它将检查您是否通过了某事。但这不是一个好的做法(虽然很流行)。 :)

更新 2: 函数的 length 属性返回其参数的数量。参见 MDN

关于javascript - 如何在继续执行其他功能之前完全完成一项功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7091844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com