javascript - jQuery 动画没有完成(slideUp/slideDown)

标签 javascript jquery animation

我有一个带有左侧导航的系统的网络界面。在导航上,我可以展开/折叠一些菜单。我使用 jQuery slideUp/slideDown 来为它们设置动画,如下所示:

if (enable)
{
    navbar_slide_down = true;
    $j(l1_folder).slideDown("normal", function() {
        navbar_slide_down = false;

        on_navbar_animation_complete();
    });
}
else
{
    navbar_slide_up = true;
    $j(l1_folder).slideUp("normal", function() {
        navbar_slide_up = false;

        on_navbar_animation_complete();
    });
}

两个动画同时运行以提供类似 Accordion 的效果。这几乎适用于所有情况。

我现在遇到的问题是,在内容框架(与导航不同的框架)中执行一些操作后,slideDown 和 slideUp 功能不再起作用。动画开始,但几乎立即停止,并且永远不会触发回调。这会导致菜单锁定。我只能在 FireFox 3.5.7 中重现这个问题(其他版本似乎没问题)。如果我打开 Firebug,问题就不会发生。

我已经尝试从 jQuery 1.3.2 升级到 1.4.1,但没有成功。

动画会失败而不调用回调有什么原因吗?我如何使用未缩小的 jQuery 对其进行调试?

最佳答案

问题与顺序有关(即:点击这个,然后点击那个,就会发生挂起)。我在第一页找到了问题:

addEvent(window, 'unload', end_page);

并将其更改为:

addEvent(window, 'onbeforeunload', end_page);

我仍然不确定为什么这会影响外部框架(并导致 jQuery 动画中断),但我最好的猜测是卸载处理程序中的代码在第二页上运行并在某处发生冲突。

关于javascript - jQuery 动画没有完成(slideUp/slideDown),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2225919/

相关文章:

javascript - 为什么来 self 的循环的警报总是返回最后一个值,而不是每个迭代值?

android 种植盒动画

javascript - 如何获取 img id 以根据点击分享或喜欢或评论动态构建 IMG 标签

javascript - 使用 ReactJS 从数组创建 li 标签

javascript - 页面不显示 JSON 对象属性

php - 如何使用 Ajax 从 MySQL 获取信息?

html - 一个元素上有多个 CSS 动画

ios - animationDidStop 方法的多个 CAAnimations?

javascript - 有谁知道一种更好的方法来获取打开的弹出窗口的句柄?

javascript - 涂黑整个页面并突出显示 div 元素