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";
} |