延迟与hoverintent

时间:2009-10-02 17:14:01

标签: jquery mouseover delay hoverintent

var config = {    
     sensitivity: 3,    
     interval: 5000,     
     timeout: 5000,    
};

$("#cart-summary").hoverIntent(function () {
        $('.flycart').slideDown('fast');
}, function() {
        $('.flycart').slideUp('fast');
}).find('a.close').click(function(){
   $(this).parents('.flycart').hide();
});

......这有效,但有两个问题:

  1. 似乎没有等待5秒钟 像它应该,几乎打开 无论我设定什么,我都会立刻。

  2. 在同一页面上使用hoverintent插件影响所有元素。

  3. 我真的很感激任何帮助。谢谢!

2 个答案:

答案 0 :(得分:8)

您没有将配置对象传递给hoverIntent,因此它使用默认值: http://cherne.net/brian/resources/jquery.hoverIntent.html

澄清,

var config = {
     sensitivity: 3,
     interval: 5000,
     timeout: 5000
};

$("#cart-summary").hoverIntent(function () {
    $('.flycart').slideDown('fast');
}, function() {
    $('.flycart').slideUp('fast');
}).find('a.close').click(function () {
    $(this).parents('.flycart').hide();
}, config);

答案 1 :(得分:1)

这可能会更清楚

function liMouseOverTrigger() {
    $(this).addClass('hover');
}

function liMouseOutTrigger() {
    $(this).removeClass('hover');
}

function tabHoverDelay() {

        var config = {
            sensitivity: 1,
            interval: 100,
            timeout: 400,
            over: liMouseOverTrigger,
            out: liMouseOutTrigger
        },
            config2 = {
                sensitivity: 1,
                interval: 350,
                timeout: 600,
                over: liMouseOverTrigger,
                out: liMouseOutTrigger
            };


        $('.js-navTabHover li').each(function () {
            $(this).hoverIntent(config);
        });

        $('.js-navTabHoverContent li').each(function () {
            $(this).hoverIntent(config2);
        });

    }

$(document).ready(function () {
    tabHoverDelay();
});