jQuery animate无法完成(slideUp / slideDown)

时间:2010-02-09 00:24:33

标签: javascript jquery animation

我有一个具有左侧导航的系统的Web界面。在导航中,我可以展开/折叠一些菜单。我使用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();
    });
}

两种动画同时运行以提供类似手风琴的效果。几乎在所有情况下都适用。

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

我尝试过从jQuery 1.3.2升级到1.4.1,没有运气。

动画是否会失败而没有调用回调?如何使用未明确的jQuery调试它?

1 个答案:

答案 0 :(得分:0)

问题是依赖于序列的(即:点击它,然后点击,然后挂起)。我在第一页找到了问题:

addEvent(window, 'unload', end_page);

并将其更改为:

addEvent(window, 'onbeforeunload', end_page);

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