jQuery setTimeOut函数不起作用

时间:2012-08-29 14:01:08

标签: php jquery settimeout slidedown

所以页面以

开头
<div id="show-quick-cart-zone"></div>

在页面顶部,我使用了加载命令脚本:

$('#show-quick-cart-zone').load('/loadbalance/quickcart');

然后将一个购物车div框插入页面,如下所示:

<div id="quickcart" class="quickcart" style="display:none">
    <div class="quickcarttitle"><span>SHOPPING BAG</span></div>
    <strong>Total</strong> £<?=$CartTotal?><br />
    <a href="/cart?ref=quick-cart"><img src="secure-checkout.png"></a>
    <a onclick="jQuery('#quickcart').slideUp(500);" href="#close-quick-cart"><img src="continue-shopping.png" style="margin-top:8px"></a>
</div>

我使用普通的超级链接来滑动它以显示和关闭。

我想要它,以便如果用户在其URL中有?x = 1查询,则通过在加载后加载它来预先加载该框:

我有以下jQuery函数。它一般应该在页面加载后滑动一个购物车div。

<script type="text/javascript">
<? if($_GET["x"]=="1"){ ?>
function showCart() {
    $('#quickcart').slideDown(500);
    Cufon.replace('.quickcart');
}
// Toggle the Quick Cart (uses Load Balance for higher TPS no que!)
// showCart();
$(document).ready(function () {
    // Code to do stuff immediately
    setTimeout(showCart, 0);
});
<? } ?>
</script>

然而,该框没有滑动而没有错误。我想要它,以便如果用户在这样的普通页面上:

/cart/product.php
没有任何反应。

但是,如果他们在/cart/product.php?x=1

该框将默认为slideDown,表示已添加新项目。

1 个答案:

答案 0 :(得分:1)

.load函数需要一些时间才能完成,可能比文档处于正确状态所需的时间更长。所以尝试类似的事情:

$('#show-quick-cart-zone').load('/loadbalance/quickcart', function() {
    // this will execute when the ajax load is complete
    showCart();
});