Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2009, 15:21
Новичок на форуме
Отправить личное сообщение для Newbie Посмотреть профиль Найти все сообщения от Newbie
 
Регистрация: 23.10.2009
Сообщений: 9

Ошибка при работе скрипта в ИЕ6, ИЕ7
Имеется меню, при клике на опции которого выпадает ещё одно меню вниз, при клике на любую другую опцию при любом активном выпавшим меню, последнее уползает откуда пришло, новое выпадает и вот тут выскакивает ошибка в ИЕ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 - глобальные переменные.

Всем спс за внимание, если кто сможет помочь - буду оч благодарен.

Последний раз редактировалось Newbie, 29.11.2009 в 15:44.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 13:17
Реализация скрипта. Изменение дерева при вводе каждой следующей буквы слова. WDha AJAX и COMET 0 03.11.2009 23:19
Выполнение скрипта при нажатии Entet в текстовм поле Vlasssov Общие вопросы Javascript 4 23.08.2009 22:31
Проблема при работе с плагином jQuery Map Hilight REp0rtER jQuery 3 29.07.2009 21:10
Ошибка скрипта меню в IE Mortymer Элементы интерфейса 1 03.04.2009 02:58