2010-02-09 114 views
2

我有一个Web界面的系统,有一个左侧导航。在导航上,我可以展开/折叠一些菜单。我使用jQuery效果基本show /了slideDown动画他们是这样的: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?

+0

考虑找到'console.log'的发生,因为这是为什么当FireBug打开时它可能工作,而当它关闭时失败 – 2010-02-09 00:28:02

+0

删除对记录器的任何引用并没有改变任何东西 – jthompson 2010-02-09 01:44:58

回答

0

问题是顺序依赖的(即:点击这个,然后,和挂起将发生)。我发现在第一页的问题:

addEvent(window, 'unload', end_page); 

它改为:

addEvent(window, 'onbeforeunload', end_page); 

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