javascript
  • fancybox
  • 2013-01-24 72 views -1 likes 
    -1

    可能重複:
    Is there a sleep function in JavaScript?如何延遲關閉()和重定向之前?

    我如何添加一個延遲到這使其接近和這麼多秒後重定向嗎?

    <script type="text/javascript"> 
        $(function() { parent.$.fancybox.close(); }); 
        window.parent.location.href = '/shop/basket'; 
    </script> 
    
    +0

    即時重定向時什麼是關閉任何東西的要點? – jAndy

    +0

    @jAndy:這個問題詢問'讓它關閉**和**重定向幾秒鐘後' –

    +0

    @MattBurland:那麼? – jAndy

    回答

    1

    使用setTimeout並從回調中調用您的函數。

    喜歡的東西:

    $(function() { 
        setTimeout(function() { 
         parent.$.fancybox.close(); 
         window.parent.location.href = '/shop/basket'; 
        }, 5000); 
    }); 
    

    等待5秒,從當DOM準備好開始。

    3
    window.closeAndRedirect = function() { 
        parent.$.fancybox.close(); 
        window.parent.location.href = '/shop/basket'; 
    } 
    
    setTimeout(closeAndRedirect, 5000); // 5 seconds 
    

    @jAndy指出:爲什麼你想,如果你重定向反正?這是一個有效點,收東西。

    也許你的意思是關閉,然後關閉5秒後重定向?如果是這樣的話:

    parent.$.fancybox.close(function() { 
        setTimeout(function() { 
         window.parent.location.href = '/shop/basket'; 
        }); 
    }); 
    

    假設關閉有一個回調。如果不是這樣,也許:

    parent.$.fancybox.close(); 
    setTimeout(function() { 
        window.parent.location.href = '/shop/basket'; 
    }); 
    
    +0

    爲什麼要保留jQuery'$(document).ready()'? 5秒後,如果DOM尚未加載,無論如何它都會立即重定向。 –

    +0

    好點。我的監督由於複製和粘貼:)。我做了編輯。 – georgedyer

    0

    其實,你並不需要做的是從打開的(孩子)頁面內,而是直接的頁....只是在使用setTimeout回調裏面你定製的fancybox腳本編程的密切重定向任務,如:

    $(".fancybox").fancybox({ 
        afterLoad: function() { 
         setTimeout(function() { 
          $.fancybox.close(); 
          window.location.href = "/shop/basket"; 
         }, 5000); // 5000 = 5 secs 
        } 
    }); 
    

    JSFIDDLE

    相關問題