Задержка для функции зависания в jquery - PullRequest
0 голосов
/ 04 апреля 2011

Я сделал свою собственную функцию задержки для моего выпадающего меню. Поскольку я немного новичок в JavaScript, я хотел бы знать, можно ли сделать это лучше?

var $hasSubpages = $("#divContainer .classForPagesWithSubpages");

function theFunction(){$('#theID').find('.classForChild').slideDown(400);}

var timer;
$hasSubpages.hover(
    function (){
        timer = setTimeout(theFunction, 500);
        $(this).attr('id','theID');
    },
    function(){
        clearTimeout(timer);
        $(this).attr('id','').find('.classForChild').slideUp(400);
    }
);

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

уже есть красивый плагин с именем hoverIntent, который уже разработан для этого.

http://plugins.jquery.com/project/hoverIntent

Если вам нужна помощь, чтобы понять, как он работает, я могу сказать вам.В противном случае с ним очень легко работать.

0 голосов
/ 04 апреля 2011

Используйте функцию delay ()

$('#test').slideDown(500).delay(3000).slideUp(500);

. Это заставит элемент сдвинуться на 3 секунды, а затем снова сдвинуть вверх

Проверить рабочий пример на http://jsfiddle.net/wanJf/

...