Jquery settimeout没有等待重定向

时间:2015-04-22 16:48:19

标签: javascript jquery

好吧,我目前正在尝试将重定向设置为另一个网页,但是当我使用settimeout时,它无效。

    setTimeout(function() {
        window.location.replace("https://github.com/Riggster"");
    }, 2000);

它会重定向我,但它不会等待两秒钟。我不确定为什么。

$(document).ready(function () {
    var gsb = $('.github-side-bar');
    var rd = $('.redirectnotice');
    gsb.on('click' , function() {
        $('html, body').animate({
            scrollTop: 0
        }, 500);
        rd.show('slow');
        setTimeout(function() {
            window.location.replace("https://github.com/Riggster"");
        }, 2000);
    });

相关HTML:

<a href="#top" class="back-to-top"><img src="./asset/img/btt.ico" width="32" height="32" /></a>
<a href="https://twitter.com/euanriggans" class="twitter-side-bar"><img src="./asset/img/twitter.ico" width="32" height="32" /></a>
<a href="https://github.com/Riggster" class="github-side-bar"><img src="./asset/img/github.ico" width="32" height="32" /></a>
<div class="redirectnotice"><img src="./asset/img/loading.svg" width="200" height="200" /><H1>Redirecting you</H1></div>

2 个答案:

答案 0 :(得分:2)

您需要阻止锚点的默认操作

gsb.on('click' , function(e) {

    e.preventDefault();

    $('html, body').animate({
        scrollTop: 0
    }, 500);
    rd.show('slow');
    setTimeout(function() {
        window.location.replace("https://www.google.com");
    }, 2000);
});

答案 1 :(得分:0)

您可能需要向我们展示更多代码以跟踪问题。你有什么看起来很好。我在这里进行了测试,它在Chrome,FF和IE中运行良好。

<!DOCTYPE html>
<html>  
    <head>      
        <meta charset="UTF-8">  
        <title>Test</title>     
    </head>
    <body>  
        <div><h1>wait, then redirect...</h1></div>  
        <script>
            setTimeout(function() {
                window.location.replace("https://www.google.com");
            }, 2000);
        </script>
    </body>
</html>