Показать сообщение отдельно
  #12 (permalink)  
Старый 16.08.2009, 23:57
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

Dmitry A. Soshnikov, спасибо огромное за объяснения

именно флаг помог сделать все как надо :-)

вот итоговый код решения моей проблемы:
Код:
var timerID = false;
var menu = false;
var menu_on = false;

function show_sub_menu()
{
  menu = document.getElementById("top_submenu");
  menu.style.visibility = "visible";
  menu.onmouseover = cancel_hide;
  menu.onmouseout = hide;
  menu_on = true;
}
function hide_sub_menu()
{
  menu = document.getElementById("top_submenu");
  menu_on = false;
  timerID = setTimeout(hide, 100);
}
function cancel_hide()
{
  menu = document.getElementById("top_submenu");
  menu.style.visibility = "visible";
  clearTimeout(timerID);
}
function hide()
{
  if (menu_on == true) return;
  menu = document.getElementById("top_submenu");
  menu.style.visibility = "hidden";
}
Ответить с цитированием