Jquery 为什么动画没有';我不能在回拨前完成

Jquery 为什么动画没有';我不能在回拨前完成,jquery,callback,slide,Jquery,Callback,Slide,在我的学习中,我一直学习并理解jQuery中的回调,如下所示: 在当前动画(效果)完成后执行回调函数 […]对于动画,即使动画尚未完成,也可以运行下一行代码。这可能会产生错误。 为了防止这种情况,您可以创建一个回调函数。在动画完成之前,不会调用回调函数。 引文: 及 回调函数是作为参数传递给另一个函数并在其父函数完成后执行的函数。 引文: 但由于某些原因,我的回调功能不起作用 请看以下代码: $(page).slideUp("slow", function() {

在我的学习中,我一直学习并理解jQuery中的回调,如下所示:

在当前动画(效果)完成后执行回调函数

[…]对于动画,即使动画尚未完成,也可以运行下一行代码。这可能会产生错误。 为了防止这种情况,您可以创建一个回调函数。在动画完成之前,不会调用回调函数。 引文:

回调函数是作为参数传递给另一个函数并在其父函数完成后执行的函数。 引文:

但由于某些原因,我的回调功能不起作用

请看以下代码:

$(page).slideUp("slow", function() {
                               
    $('div#details').html(details);
    $(page).slideDown("slow");              

});
            
这将使contentbox向上滑动并因此消失,然后内容将更改为新内容,最后contentbox再次向下滑动(显示)。我需要这三个步骤按照这个顺序一个接一个地进行,但每个步骤必须在前一个步骤完成后才开始。这就是为什么我使用回调,而不仅仅是这样:

$(page).slideUp("slow");
                               
$('div#details').html(details);
                            
$(page).slideDown("slow");
这将使一切同时发生

我的代码可以工作,我可以通过点击按钮来改变页面内容。但是动画的反应并不像我预期的那样。单击按钮时,内容立即消失,没有任何动画幻灯片。然后,新内容会以精细的动画向下滑动

我不明白为什么没有动画幻灯片,但我怀疑回调的行为不像我想象的那样。似乎回调在第一个动画开始时启动,而不是等到动画完成后才启动。或者可能只是幻灯片根本不起作用


有谁能向我解释一下,在这个包含回调的极其简单的代码中,我不知道和看不到什么?

将幻灯片向下放到回调中

$(page).slideUp("slow", function() {

    $('div#details').html(details);
    $(page).slideDown("slow");
});

您以前的代码仅在完成slideUp后更新了div#详细信息

将滑块向下放入回调中

$(page).slideUp("slow", function() {

    $('div#details').html(details);
    $(page).slideDown("slow");
});

您以前的代码仅在完成slideUp后更新了div#详细信息

您可以使用延迟功能作为解决方法

$(page).slideUp(500);
$('div#details').html(details);
$(page).delay(500).slideDown(500);

您可以使用延迟功能作为解决方法

$(page).slideUp(500);
$('div#details').html(details);
$(page).delay(500).slideDown(500);

不起作用。看来这张幻灯片什么都做不了。我现在已经在我的网站代码中做到了,但仍然没有运气。但是谢谢你的评论。您完全正确,最后一行当然也应该在回调中(理论上)。我已经将它编辑到我的问题中,并对你的答案进行了投票。好吧,我假设page是一个变量-实际上应该向上滑动的是什么?在查看了你的源代码之后,我认为它不会向上滑动,因为它在有机会从DOM中删除之前。检查上面的两行-展开和包裹()。尝试将这两行放在slideUp回调中。内容应滑动的外部框是
div\details
<代码>页面包含存储实际内容的框(最初隐藏)的id。而
details
page
中的内容,总是在一个div中(因为表格让它变得非常棒)。好吧,这些包装行不是答案,但你指引了我正确的方向。我在页面的其他地方出错了。我不知道slideUp为什么不工作,而slideDown却工作了——就好像有一半的脚本工作了一样,尽管有错误。但无论如何谢谢都不行。看来这张幻灯片什么都做不了。我现在已经在我的网站代码中做到了,但仍然没有运气。但是谢谢你的评论。您完全正确,最后一行当然也应该在回调中(理论上)。我已经将它编辑到我的问题中,并对你的答案进行了投票。好吧,我假设page是一个变量-实际上应该向上滑动的是什么?在查看了你的源代码之后,我认为它不会向上滑动,因为它在有机会从DOM中删除之前。检查上面的两行-展开和包裹()。尝试将这两行放在slideUp回调中。内容应滑动的外部框是
div\details
<代码>页面包含存储实际内容的框(最初隐藏)的id。而
details
page
中的内容,总是在一个div中(因为表格让它变得非常棒)。好吧,这些包装行不是答案,但你指引了我正确的方向。我在页面的其他地方出错了。我不知道slideUp为什么不工作,而slideDown却工作了——就好像有一半的脚本工作了一样,尽管有错误。不过还是谢谢你