jQuery鼠标经过(hover)事件的延时处理
更新:HHH   时间:2023-1-7


<!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" >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>

返回web开发教程...