可能是jQuery.delay错误?

可能是jQuery.delay错误?,jquery,debugging,accordion,delay,fade,Jquery,Debugging,Accordion,Delay,Fade,我将jQuery.delay与jQuery.accordion和jQuery.fadeIn/Out效果结合使用。以下是我的javascript: <script type="text/javascript"> $(function() { $("#accordion").load("update.php"); var refresh = setInterval(function() { $("#accordion").fadeOut("slow", f

我将jQuery.delay与jQuery.accordion和jQuery.fadeIn/Out效果结合使用。以下是我的javascript:

<script type="text/javascript">
  $(function() {
    $("#accordion").load("update.php");
    var refresh = setInterval(function() {
      $("#accordion").fadeOut("slow", function() {
        $("#accordion").load("update.php", function() {
          $("#accordion").delay(1);
          $("#accordion").fadeIn("slow");
        });
      });
    }, 5000);
  });
</script>

$(函数(){
$(“#accordion”).load(“update.php”);
var refresh=setInterval(函数(){
$(“#手风琴”)。淡出(“慢”,函数(){
$(“#accordion”).load(“update.php”,function(){
$(“手风琴”)。延迟(1);
$(“手风琴”).fadeIn(“慢”);
});
});
}, 5000);
});
这样做的目的是在一个手风琴布局中加载update.php生成的HTML(即它的可折叠内容),每5秒钟它将轮询update.php以获取新的HTML,并在淡出旧的HTML后淡入

问题出现在行读取<代码>$(“#手风琴”)。延迟(1)。有了这一行,内容中可折叠的部分会以某种方式被缩减,不会像合适的手风琴效果那样“展开”。所有的数据仍然存在;您可以单击并拖动鼠标向下滚动。它只是不能在浏览器中正确渲染或正确绘制div之类的东西。只需删除该行,即可成功加载而不会出现问题


我鼓励你尝试复制我的结果,并让我知道你是否可以找到一个工作,因为我真的需要在那里的延迟!感谢阅读。

delay()不能代替setTimeout()。它会延迟运行动画,但不会运行动画(淡出应该已经在那里完成)

如果您试图延迟淡出,代码应为:

          $("#accordion").delay(1).fadeIn("slow");

看:

和所有事情一样,我是个白痴。事实证明,jQuery的制造商一直都知道这个问题,并用autoHeight和clearStyles编程来解决这个问题。如果其他任何人在AJAX的手风琴效果中遇到类似的div截断错误,您将需要使用这些参数之一来纠正它。这与delay()与fade()效果交互以创建0高度元素的方式有关。“自动高度”会将它们的高度重置为最高的元素,而“清除样式”会在事件中完全重置它们。

您知道
延迟(1)
是1毫秒,对吗?这就是你想要完成的吗?如果您尝试延迟(1000),是否也会发生同样的情况?是的,1ms只是用于概念验证。不管你把它设定成什么。不,没关系。它与delay()具有完全相同的截断错误。还有人想试试吗?你可以通过下载最新的jQuery用户界面并使用默认的手风琴演示来复制这个问题。只需将HTML内容移动到一个单独的PHP文件(即update.PHP),并通过上述方法调用它。任何时候,当您将delay()或setTimeout与setInterval结合使用以自动刷新时,它将返回空div(尽管手风琴效果仍然存在)。感谢您的回复。不幸的是,这与将其放置在fadeIn上方的一条线上完全相同。delay()通过延迟队列中的下一个动画来工作。它会导致完全相同的截断误差。