需要帮助修复此jQuery下拉列表

时间:2009-09-22 16:04:29

标签: 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的高度返回到原始大小,并将显示设置为none,以便它可以再次运行。现在的方式是,当离开时高度设置为0,下次“ulHeight”被取为0时。

我试过这样但没有快乐:


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

任何想法?

2 个答案:

答案 0 :(得分:1)

您的子菜单根本没有显示......

但最终,为什么重新发明轮子? http://css-tricks.com/simple-jquery-dropdowns/Superfish


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

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

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

,您可以使用.hover代替.mouseenter.mouseleave

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

答案 1 :(得分:0)

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