Доброго времени суток!
Помогите разобраться, в меню нужно сделать раскрытие списка, брал шаблон и скрипт готовыми, а выявился недостаток, если просто с главной страницы пытаться раскрыть, то родительский список не сдвигается вниз, так как высота дочернего равна 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;
});
Не пинайте пожалуста сильно