Меню должно разворачиваться через полсекунды после наведения на него курсора, если курсор с него не убрали. Использую setTimeout. Если курсор убрали с меню, то делаем clearTimeout. Почему при отведении курсора Таймер не уничтожается? меню разворачивается, даже если курсор отвели.
$(".h_menu li").mouseenter(function(){
var that = this;
glt = setTimeout(function() {
var num=$(that).index();
if (num>0) {
$(".hpop_item").stop();
$(".hpop").stop();
num--;
var $item=$(".hpop_item").eq(num);
var he=$item.height();
$(".hpop_item").stop(true,true).fadeOut(100);
$(".hpop").stop().animate({height:he},300);
$item.stop().fadeIn(300);
}
else {
if($(".hpop_item").is(":visible")) {
hpopclose();
}
}
}, 500)
});
// если убрать курсор с пункта меню, таймер уничтожается
$(".h_menu li").onmouseout = function() {
clearTimeout(glt);
}