我正在编写下拉菜单的脚本。它到目前为止工作正常,但我需要再添加一件事,我无法弄明白。这是当前的脚本:
$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}); }
任何想法?
答案 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
。