Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   исчезновение меню через timeout (https://javascript.ru/forum/dom-window/47478-ischeznovenie-menyu-cherez-timeout.html)

imedia 26.05.2014 03:33

исчезновение меню через timeout
 
Здравствуйте, есть меню на сайте http://ecologycentre.com.ua/
Скажите пожалуйста, как сделать исчезновение раскрывшегося подменю с таймаутом, то есть при смещении мыши в первом уровне меню подменю второго уровня исчезнет не сразу а через 2 секунды
Сейчас исчезновение настроено сразу
$('#menu_block ul li ').mouseleave(function(){
$(this).find('>ul').fadeOut().stop(true,true)
});

Я пытался сделать вот так
$('#menu_block ul li ').mouseleave(function(){
 
setTimeout(function(){$(this).find('>ul').fadeOut().stop(true,true)},200);
});

Но это не сработало

Erolast 26.05.2014 07:23

И не сработает. Внутри коллбека this ссылается на уже совершенно другой объект.
$('#menu_block ul li').mouseleave(function(){
  setTimeout(function(){$('#menu_block ul li').find('>ul').fadeOut().stop(true,true)},2000);
});

И в секунде 1000 миллисекунд, а не 100.

krasovsky 26.05.2014 07:49

$('#menu_block ul li ').mouseleave(function(){
 var self = $(this);//эта ссылка на this будет доступна всем функциям написанным ниже
setTimeout(function(){self.find('ul').fadeOut().stop(true,true)},200);
});

imedia 26.05.2014 10:04

так исчезает и основное меню а не только дополнительное, но с задержкой

imedia 26.05.2014 10:49

Этот момент работает но суть нет, я изложу ее в новой теме


Часовой пояс GMT +3, время: 03:35.