Подсчет высоты списка меню
Доброго времени суток!
Помогите разобраться, в меню нужно сделать раскрытие списка, брал шаблон и скрипт готовыми, а выявился недостаток, если просто с главной страницы пытаться раскрыть, то родительский список не сдвигается вниз, так как высота дочернего равна 0, а если зайти на уровень ниже, то этот же пункт работает нормально. http://ivan-home.no-ip.biz - пока заполнен только пункт Компрессоры. function setHeightlvlp(clickitem){ if(clickitem.parent("span").parent("li").find("ul:first").attr('rel')){ heightlvl2Ul = clickitem.parent("span").parent("li").find("ul:first").attr('rel'); } else { clickitem.parent("span").parent("li").find("ul:first").css({display: 'block',height:"auto"}); heightlvl2Ul = clickitem.parent("span").parent("li").find("ul:first").height(); } } var lis = $('.sidebar .nav').find('li'); for(var i = 0; i < lis.length; i++) { if($(lis[i]).hasClass('current')) { if($(lis[i]).parents("li").hasClass('lvl1')){ var ul = $(lis[i]).find('ul:first'); $(ul).css({display: 'block',height:"auto"}); var h = $(ul).height(); $(ul).css({height: 0, display: 'block'}); var ulp= $(lis[i]).parents("li.lvl1").find('ul:first'); $(ulp).css({display: 'block'}); var hp = $(ulp).height(); $(ulp).css({height: 0, display: 'block'}); $(ul).attr("rel", h); $(ulp).attr("rel", hp); $(ul).css({height: h+'px'}); $(ulp).css({height: h+hp+'px'}); } else { var ul = $(lis[i]).find('ul:first'); $(ul).css({display: 'block',height:"auto"}); var h = $(ul).height(); $(ul).css({height: 0, display: 'block'}); $(ul).attr("rel", h); $(ul).css({height: h+'px'}) } } } $(".showchild").live('click', function() { var clickitem = $(this); if( clickitem.parent("span").parent("li").hasClass('lvl1')){ if( clickitem.parent("span").parent("li").hasClass('current')){ clickitem.parent("span").parent("li").find("ul").animate({height: 0}, 300); clickitem.parent("span").parent("li").removeClass("current"); clickitem.parent("span").parent("li").find(".current").removeClass("current"); } else { setHeightlvlp(clickitem); clickitem.parent("span").parent("li").find("ul:first").attr('rel',heightlvl2Ul); clickitem.parent("span").parent("li").find("ul:first").css({height: 0, display: 'block'}); clickitem.parent("span").parent("li").find("ul:first").animate({height: heightlvl2Ul+'px'}, 300); clickitem.parent("span").parent("li").addClass("current"); } } else { if( clickitem.parent("span").parent("li").hasClass('current')){ setHeightlvlp(clickitem); heightLVL1= clickitem.parents(".lvl1").find("ul:first").height(); var resulth = parseInt(heightLVL1)-parseInt(heightlvl2Ul) clickitem.parent("span").parent("li").find("ul").animate({height: 0}, 300); clickitem.parents(".lvl1").find("ul:first").animate({height: resulth+"px"}, 300); clickitem.parent("span").parent("li").removeClass("current"); } else { setHeightlvlp(clickitem); heightLVL1 = clickitem.parents(".lvl1").find("ul:first").height(); clickitem.parent("span").parent("li").find("ul:first").attr('rel',heightlvl2Ul); clickitem.parent("span").parent("li").find("ul:first").css({height: 0, display: 'block'}); clickitem.parent("span").parent("li").find("ul:first").animate({height: heightlvl2Ul+'px'}, 300); clickitem.parents(".lvl1").find("ul:first").animate({height: parseInt(heightlvl2Ul)+ parseInt(heightLVL1)+'px'}, 300); clickitem.parent("span").parent("li").addClass("current"); } } return false; }); Не пинайте пожалуста сильно;) |
ivannnn,
$('.newselect').selectbox(); а подключен ли данный плагин selectbox? выдаёт что нет и закрывающий тег <html> наклонная черта пропущена. а так слишком много всего подключено разве что метод job помочь сможет |
тег поправил, скрипты отключил)))
судя по самому скрипту, он высоту списка сохраняет в rel="", но если список скрыт, то там 0. причем шаблон меню и скрипт взяты с Шаблона интернет-магазина битрикс. |
Часовой пояс GMT +3, время: 17:34. |