简单的jQuery回调在IE中破解

我有几个这样的function:

$(this).find('.subnav').fadeIn(200, buttonHide ); 

现在,在这种情况下, buttonHide是我在别处声明的函数。 一旦200ms fadeIn完成,我想调用该函数。

大。 适用于FF和Safari。 但是,在IE中,它返回一个未定义的错误。 事实上,我在Ariel Flesler的scrollTo中使用onAfter函数经历了相同的问题… …给出了什么?

我有什么办法让IE能够运行这些回调?

编辑:这是包含该function的代码。 这个页面在上面的片段之后被称为…我有点像菜鸟; 那是问题吗? 没有任何东西可以运行,直到所有东西都加载完毕。

 jQuery(function( $ ){ /* BEGIN MENU SCROLLER INITIALIZATION */ // Resets pane $('.menuClip').scrollTo( 0 ); // scrolls to active item to $('body:not(.archive) .menuClip').stop().scrollTo( $('.current_page_item') ); $('.menuDown').click(function(){ $('.menuClip').stop().scrollTo( '+=70px', 800, { onAfter:function(){ buttonHide(); }, }); }); $('.menuUp').click(function(){ $('.menuClip').stop().scrollTo( '-=70px', 800, { onAfter:function(){ buttonHide(); }, }); }); /* END MENU SCROLLER INITIALIZATION */ }); $(buttonHide = function() { setTimeout(function(){ var elemM = $(document).find('.menuClip:visible'); if (elemM[0].scrollHeight - elemM.scrollTop() == elemM.outerHeight()) { $('.menuDown').animate({"opacity":"0"}, 200); } else { $('.menuDown').animate({"opacity":"1"}, 200); } if (elemM.scrollTop() == 0) { $('.menuUp').animate({"opacity":"0"}, 200); } else { $('.menuUp').animate({"opacity":"1"}, 200); } }, 200); }); 

有一件事我注意到:回调后的逗号会破坏IE:

 $('#move_this_up').click(function(){ $('#content').stop().scrollTo( '-=270', 1000, { onAfter:function(){ inactiveContentStates(); }, // COMMA BAD!!!! }); }); 

在调用函数并删除逗号之前声明函数有帮助。

希望这对别人有用!