首页 > 代码库 > jQuery – 鼠标经过(hover)事件的延时处理

jQuery – 鼠标经过(hover)事件的延时处理

(function($){
    $.fn.hoverDelay = function(options){
        var defaults = {
            hoverDuring: 200,
            outDuring: 200,
            hoverEvent: function(){
                $.noop();
            },
            outEvent: function(){
                $.noop();    
            }
        };
        var sets = $.extend(defaults,options || {});
        var hoverTimer, outTimer;
        return $(this).each(function(){
            $(this).hover(function(){
                clearTimeout(outTimer);
                hoverTimer = setTimeout(sets.hoverEvent, sets.hoverDuring);
            },function(){
                clearTimeout(hoverTimer);
                outTimer = setTimeout(sets.outEvent, sets.outDuring);
            });    
        });
    }      
})(jQuery);

实现

$("#test").hoverDelay({
    hoverEvent: function(){
        alert("经过我!");
    }
});

  

jQuery – 鼠标经过(hover)事件的延时处理