调用toggle
需要很长时间才能加载,因此我尝试在加载时添加加载img,但是当.showall
被激活时似乎没有加载{{1}在以下代码中
*
答案 0 :(得分:1)
在回调中调用hide的另一个响应是正确的方法,但我想我会回答指出原因。
这里实际上存在多个问题。您的目的是显示#loading
然后slideup
,一旦完成,请隐藏#loading
。但是,当调用slideup
时,动画排队等待您的代码继续运行,代码不会等待slideup
完成,然后继续前进到下一行。这就是您需要使用回调的原因,以便在hide
完成后致电slideup
。
许多人忽略的另一件事是show
和hide
在使用持续时间调用时是动画,因此是队列,但是,当没有持续时间传递时,这些调用不是动画,不会排队。因此,使用持续时间调用show
然后立即调用hide
没有持续时间将永远不会显示该元素。请参阅此说明:http://jsfiddle.net/zZHhm/请注意,您从未见过DIV2。
此外,传递给show
和hide
的持续时间以毫秒为单位,因此hide(1)
的持续时间为1毫秒(您可能会注意到这一点)。
答案 1 :(得分:0)
我承认,在使用带或不带参数的show / hide时会发生一些奇怪的事情。这个版本有效,但我不知道为什么没有参数的这些方法不能正常运行。
代码:(http://jsfiddle.net/z3HRQ/2/)
$('#loading').hide(1);
$('.showall').toggle(
function () {
$('#loading').show(1);
$('.toggle_container').slideUp(function () {
$('#loading').hide();
});
},
function () {
$('#loading').show(1);
$('.toggle_container').slideDown(function () {
$('#loading').hide();
});
}
);