Имеется меню, при клике на опции которого выпадает ещё одно меню вниз, при клике на любую другую опцию при любом активном выпавшим меню, последнее уползает откуда пришло, новое выпадает и вот тут выскакивает ошибка в ИЕ6 ИЕ7, хотя работает всё правильно.
Вот функция в котрой выскакивает ошибка
function ddSlide(id,dir) {
var cont = document.getElementById(id);
var currheight = cont.offsetHeight;
var dist;
if(dir == 1) {
dist = (Math.round((cont.maxh - currheight) / DDSPEED));
} else {
dist = (Math.round(currheight / DDSPEED));
}
if(dist <= 1) {dist = 1;}
//вот на следующей строке выдайот ошибку, типо invalid arguement, char 1
cont.style.height= currheight + (dist * dir) + 'px';
cont.style.opacity = currheight / сont.maxh;
cont.style.filter = 'alpha(opacity=' + (currheight * 100 / cont.maxh) + ')';
if((currheight < 2 && dir != 1) || (currheight > (cont.maxh - 2) && dir == 1)) {
clearInterval(cont.timer);
}
}
вот функция заползания подменю
function ddCollapse(id) {
var cont = document.getElementById(id);
cont.timer = setInterval("ddSlide('" + id + "', -1)", DDTIMER);
}
вот главная функция которая рулит педалит:
function ddMenu(id,dir) {
var head = document.getElementById(id + '-ddheader');
var cont = document.getElementById(id + '-ddcontent');
clearInterval(cont.timer);
if(bool == true) {
clearTimeout(head.timer);
if(cont.maxh && cont.maxh <= cont.offsetHeight) {
return;
} else if(!cont.maxh) {
cont.style.display = 'block';
cont.style.height = 'auto';
cont.maxh = cont.offsetHeight;
cont.style.height = '0px';
}
bool = false; head.style.background = '#f2f2f2';
cont.timer = setInterval("ddSlide('" + id + "-ddcontent', 1)", DDTIMER);
x = id;
} else { head = document.getElementById(x + '-ddheader');
head.timer = setTimeout('ddCollapse(\'' + x + '-ddcontent\')', 0);
head.style.background = 'none'; bool=true; }
if (x!=id) {
head = document.getElementById(id + '-ddheader');
cont = document.getElementById(id + '-ddcontent');
clearTimeout(head.timer);
if(cont.maxh && cont.maxh <= cont.offsetHeight) {
return;
} else if(!cont.maxh) {
cont.style.display = 'block';
cont.style.height = 'auto';
cont.maxh = cont.offsetHeight;
cont.style.height = '0px';
}
bool = false; head.style.background = '#f2f2f2';
cont.timer = setInterval("ddSlide('" + id + "-ddcontent', 1)", DDTIMER);
x = id;}}
X, bool, DDTIMER, DDSPEED - глобальные переменные.
Всем спс за внимание, если кто сможет помочь - буду оч благодарен.