setTimeout函数完成后重新加载

tma*_*314 1 javascript jquery

我希望在此自定义函数完成后重新加载窗口:

<script type="text/javascript">
$(document).ready(function(){
    setTimeout(function () {
        $('#order_form').dolPopupHide({});
    }, 3000);
    //window.location.reload();
});
</script>
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将重新加载添加到setTimeout函数中,因此在超时结束之前它不会运行?

Gab*_*art 6

reload 需要在你的功能内:

$(document).ready(function(){
    setTimeout(function () {
        $('#order_form').dolPopupHide({});
        window.location.reload();
    }, 3000);

});
Run Code Online (Sandbox Code Playgroud)

如果您想在概念上将工作与重新加载分开,您可以执行以下操作:

$(document).ready(function(){
    setTimeout(function () {
        doWork();
        window.location.reload();
    }, 3000);

    function doWork() {
        $('#order_form').dolPopupHide({});
    }

});
Run Code Online (Sandbox Code Playgroud)

或者,更为一般:

function reloadAfterExec(fn) 
    return function() {
        fn();
        window.location.reload();
    }
}

$(document).ready(function(){
    setTimeout( reloadAfterExec(function() {
        $('#order_form').dolPopupHide({});
    }), 3000);

});
Run Code Online (Sandbox Code Playgroud)

  • @whatshakin不要忘记将此答案标记为"已接受" (6认同)