Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Задержка исчезновения jQuery меню (https://javascript.ru/forum/jquery/10917-zaderzhka-ischeznoveniya-jquery-menyu.html)

buhankavodki 28.07.2010 16:14

Задержка исчезновения jQuery меню
 
Есть меню на JQuery, необходимо сделать задержку после выхода мышки из зоны меню. Пока что есть вот такой код, он работает, но если вывести мышку, а потом опять навести то есть эффект моргания.
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
       (document).ready(function(){
       
	    var id
            var mark
            $('.suckerdivs').hover(function(){},
            function(){ mark =1;
                id = setTimeout("$('.suckerdivs ul li ul').fadeOut(500)", 1500);})
	    $('.suckerdivs ul li').hover(

                function() {
                    clearTimeout(id)
                    
                            //$(this).find('ul:first').stop(true, true);
                            $(this).find('ul:first').css("left",$(this).find('ul:first').width()+"px");
                           if (mark!=1){
                           $(this).parent().find('li ul').hide();}

                            $(this).find('ul:first').delay(1).fadeIn(1);
                            mark = 0;

                                              
                    
	        },
	        function() {
                    //$(this).find('ul:first').delay(1000).fadeOut(400)
	        }
	    );
	    // всем элементам меню с вложенностью добавить символ &raquo;
	    $('.suckerdivs ul li:has(ul)').find('a:first').append(' &raquo;');
	});

</script>

Сам html менюшки выглядит как обычный ul список с множеством вложений.

Может у кого есть примеры JSменюшек с задержкой после вывода курсора мыши?

Skipp 28.07.2010 17:56

buhankavodki,
Какой ещё задержки. Откуда вы взяли этот скрипт?

buhankavodki 28.07.2010 19:18

Когда я убираю курсор мыши мне нужно что бы меню пропадало не мгновенно а допустим через 1,5 сек. Скрипт писался самостоятельно.

exec 28.07.2010 19:35

В обработчик mouseover:

clearTimeout( window.hideMenu );


В обработчик mouseout:

window.hideMenu = setTimeout(function () {
$(element).hide();
});


Да, и в 3-ей строке у вас ошибка, $ в начале надо написать.

Skipp 29.07.2010 09:09

или используйте animate и меняйте opacity

subzey 29.07.2010 22:32

$(...).hover(function(){
$(...).stop().slideDown()
}, function(){
$(...).delay(1500).slideUp()
})

Или что-то похожее. Прошу прощения, пишу с телефона.


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