2009-09-22 53 views
0

我正在处理下拉菜单的脚本。目前为止工作正常,但我需要再添加一件东西,但我无法弄清楚。下面是当前的脚本:需要帮助修复这个jQuery下拉脚本


$j('ul.menu > li').hover(

    function() { var ulHeight = $j('ul', this).height(); $j(this).children('ul').css({height: 0}).stop().animate({height: ulHeight}, 400); }, 
    function() { $j(this).children('ul').stop().animate({height: 0}, 400); } 
); 

我需要返回UL的高度,以它的原始大小,并设置显示器没有,所以它可以再次运行。现在,随着高度设置为0在离开的路上,下一次“ulHeight”被认为是0。

我试过这样,但没有喜悦:


function() { $j(this).children('ul').stop().animate({height: 0}, 400).css({height: ulHeight}); } 

任何任何想法?

+0

你可以在http://jsbin.com上发布演示吗? – 2009-09-22 16:43:01

+0

http://jsbin.com/ofaco – 2009-09-22 17:29:57

回答

1

你的子菜单没有显示在所有...

但最终,为什么另起炉灶? http://css-tricks.com/simple-jquery-dropdowns/Superfish


我建议,现在,我已经看了你的新代码的唯一的事情,就是更换

.css({"display": "block"}); 
.css({"display": "none"}); 

.show(); 
.hide(); 
分别

,你可以用.hover代替.mouseenter.mouseleave

检查出来here ...我无法在jsbin中编辑你的代码(编辑窗口是3行高,我无法滚动),所以我把它转发到pastebin。

+0

所以我可以学习如何自己制作轮子;-) 我单独分类的子菜单,因为我希望它们从侧面飞出,而不是从上到下。新的演示版本已经启动 - 任何人都有清理代码的指示器请切入! http://jsbin.com/oseri – 2009-09-22 20:17:22

+0

大声笑好吧......我也想为自己弄点事情。新版本看起来像在为我工作,没有在Firefox的问题。 – Mottie 2009-09-22 20:38:28

+0

酷男,欢呼花时间穿过它。似乎肯定会对这些变化运行一点点甜! – 2009-09-22 21:20:06

0

height属性的默认值是auto。您应该将其设置为,而不是0,隐藏时。