【问题标题】:jQuery setTimeOut function not workingjQuery setTimeOut 函数不起作用
【发布时间】:2012-08-29 22:17:48
【问题描述】:

所以页面以

开头
<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 查询,它会在通过 load 加载后通过向下滑动来预加载框:

我有以下 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

默认情况下,该框将向下滑动,指示添加了新项目。

【问题讨论】:

  • "但是,该框不会毫无错误地向下滑动。"这是一个非常令人困惑的说法。你有什么问题?
  • 您是否尝试过为超时增加一些时间?
  • 为什么不在document.ready 内部调用它?
  • 你确定&lt;? if($_GET["x"]=="1"){ ?&gt; 计算结果为真吗?您能否发出警报并确认此 if 语句中的代码实际运行?
  • fiddle.jshell.net/xWKmK 代码看起来不错。也许它的加载太快了?我只是提供建议。

标签: php jquery settimeout slidedown


【解决方案1】:

.load 函数需要一些时间才能完成,可能比文档具有正确状态所需的时间更长。所以试试类似的东西:

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

【讨论】:

  • 看演示。 load函数加载速度很快!
  • “快速”不是一个技术术语,我会在尝试滑动之前确保该元素存在。
  • 很高兴我能帮上忙。您最好了解一下 JavaScript 中的异步加载和使用回调,这是线性程序员最常见的困惑领域之一。
  • 能否解释一下或者发个教程。我认为因为我已经加载了那块 HTML,它应该适合它所做的空 HTML;然后我想我可以从中调用元素,但不知道它也必须在同一个 .load() 中调用
猜你喜欢
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
相关资源
最近更新 更多