2015-04-22 5 views
0

Ну, в настоящее время я пытаюсь установить таймер на перенаправление на другую веб-страницу, однако, когда я использую settimeout, он не работает.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); 
    }); 

Associated 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> 
+0

Я попробовал ваш код и он работает без проблем –

+0

он должен работать нормально, не могли бы вы поделиться кода, связанного. – Vijay

+0

@ Vijay Я добавил всю функцию. –

ответ

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); 
}); 
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> 
Смежные вопросы