javascript
  • fancybox
  • 2013-01-24 31 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

    相关问题