如果列表LI使用jquery对我不起作用,则更改div的高度

时间:2013-01-08 05:38:50

标签: javascript jquery css

我正在处理一个水平菜单,对我来说很好但是根据设计要求,如果主/父菜单<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添加高度 enter image description here

3 个答案:

答案 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