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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery鼠标经过(hover)事件的延时处理相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="jquery-1.8.1.js"></script>
<title>无标题文档</title>
</head>
<style>
#test{
    width:20px;
    height:20px;
    border:1px solid red;
    }
</style>
<body>
 <div id="test">
 </div>
  <div id="tm" style="display:none">a</div>
</body>
<script type="text/javascript">
    (function($){
        $.fn.hoverDelay = function(options){
            var defaults = {
                hoverDuring: 600,
                outDuring: 600,
                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({
        hoverDuring: 600,
        outDuring: 600,
        hoverEvent: function(){
            $("#tm").show();
        },
        outEvent: function(){
            $("#tm").hide();
        }
    });  
</script>
</html>

以上是关于jQuery鼠标经过(hover)事件的延时处理的主要内容,如果未能解决你的问题,请参考以下文章

jQuery的hover事件,鼠标经过能显示子菜单,移出就不能隐藏子菜单。代码如下

js中hover事件时候的BUG以及解决方法

jquery,怎样可以让鼠标停留在某一区域不少于1秒才会执行代码

jquery鼠标悬停事件hover()

jQuery中hover事件和click事件嵌套问题

用jquery怎么延时加载ajax?