我正在使用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>
这样做是在手风琴布局中加载由update.php生成的HTML(即它是可折叠的内容),每隔5秒就会轮询update.php以获取新的HTML,并在淡出旧的HTML后将其淡入。 / p>
问题出现在行$("#accordion").delay(1);
上。通过这一行,可折叠的内容部分会以某种方式缩减,并且不会像正确的手风琴效果那样“展开”。所有数据仍然存在;您可以单击并拖动鼠标向下滚动它。它只是在浏览器中无法正确呈现或正确绘制div或其他东西。只需删除该行,就可以成功加载而不会出现问题。
我鼓励你尝试重现我的结果,如果你能找到一个解决办法让我知道,因为我确实需要那里的延迟!谢谢你的阅读。
答案 0 :(得分:2)
delay()不能替代setTimeout()。它会延迟运行动画,但没有动画运行(fadeOut应该已经在那里完成)
答案 1 :(得分:0)
答案 2 :(得分:0)
与所有事情一样,我是个白痴。事实证明,jQuery的制造者一直都知道这个问题,并在autoHeight和clearStyles中编程来解决这个问题。如果其他人在使用AJAX的手风琴效果时遇到类似的div截断错误,您将需要使用其中一个参数来纠正它。它与delay()与fade()效果交互以创建0个高度元素的方式有关。 autoHeight将它们的高度重置为最高元素,clearStyles会在事件中完全重置它们。