我正在处理一个水平菜单,对我来说很好但是根据设计要求,如果主/父菜单<div id="nav-subMenu"></div>
没有任何{{1},我需要更改li
的高度换句话说,或者子菜单。我写的jquery不适合我,我会很感激这方面的帮助。
以下是jsFiddle
的示例 ul
始终返回if ($('#nav-wrapper ul li').has('ul'))
示例jQuery
true
示例HTML代码
jQuery(document).ready(function () {
if ($('#nav-wrapper ul li').hasClass('active')) { //if it does have the class active
if ($('#nav-wrapper ul li').has('ul')) {
alert('aaaa');
$('#nav-subMenu').css("height", "30");
}
}
});
更新:Firebug视图以了解jquery应该触发何时向DIV添加高度
答案 0 :(得分:1)
我发现了你的问题,这可以按照你的意愿运行,试试看:
jQuery(document).ready(function () {
if ($("#nav-wrapper li.active").length) {
alert('yes there are .active class');
if ($(".active").has('ul').length) {
alert('yes .active class has ul');
$('#nav-subMenu').css("height", "60px");
} else {
alert("NO .active class don't have ul");
$('#nav-subMenu').css("height", "0px");
}
} else {
alert("NO .active class found.");
}
});
在这里查看小提琴:http://jsfiddle.net/zMty8/27/
答案 1 :(得分:0)
试试这个:
if ($('#nav-wrapper ul li').has('ul')) {
$('#nav-subMenu').css("height", "30px");
}
if ($('#nav-wrapper ul li').has('ul')) {
alert('a');
$('#nav-subMenu').css("height", "30px");
}
参考here
答案 2 :(得分:0)
检查此代码:
jQuery(document).ready(function () {
if ($('#nav-wrapper ul li').hasClass('active')) { //if it doesn't have the class active
if ($('#nav-wrapper ul li > ul'.length > 0)) {
$('#nav-subMenu').css("height", "30");
}
}
});
<强> DEMO 强>