setTimeout函数完成后重新加载

时间:2010-10-20 14:45:32

标签: javascript jquery

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

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

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

1 个答案:

答案 0 :(得分:6)

reload需要在你的职能范围内:

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

});

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

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

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

});

或者,更为一般:

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

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

});