0

我有这个代码:

 var shortcuts = $('#geo_shortcuts');
    shortcuts.find('li').hoverIntent(
        function () {
            // Open the Panel
            $(this).find('.geo_shortcuts_content').stop().animate({
                top: '-122'
            }, 300);
        },
        function () {
            //Close de Panel
            $(this).find('.geo_shortcuts_content').stop().animate({
                top: '0'
            }, 400);
        }
    );

如何在鼠标悬停 2 秒后只允许关闭面板?我知道我应该做一个 settimeout 功能,但我不知道怎么做。

4

2 回答 2

1

尝试使用delay()方法:

$(this).find('.geo_shortcuts_content').stop().delay(2000).animate({
    top: '0'
}, 400);
于 2012-06-22T11:25:04.560 回答
0

您可以使用计时器来执行此操作

hideDelayTimer = null;
    shortcuts.find('li').hoverIntent(
        function () {
            // Open the Panel
            clearTimeout(hideDelayTimer);
            $(this).find('.geo_shortcuts_content').stop().animate({
                top: '-122'
            }, 300);
        },
    function () {
        //Close de Panel
        clearTimeout(hideDelayTimer);
        hideDelayTimer = setTimeout(function () {
            hideDelayTimer = null;
                $(this).find('.geo_shortcuts_content').stop().animate({
                    top: '0'
                }, 400);
        }, 2000);   

祝你今天过得愉快

于 2012-06-22T11:25:02.593 回答