<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="jQuery 鼠标经过(hover)事件的延时处理示例" id="card1">
<p> 游客</p><p>
标题:jQuery 鼠标经过(hover)事件的延时处理示例<br/>
正文:<br/>
一、关于鼠标hover事件及延时 <br/>鼠标经过事件为web页面上非常常见的事件之一。简单的hover可以用CSS :hover伪类实现，复杂点的用js。 <br/><br/>一般情况下，我们是不对鼠标hover事件进行延时处理。但是，有时候，为了避免不必要的干扰，常会对鼠标hover事件进行延时处理。所谓干扰，就是当用户鼠标不经意划过摸个链接，选项卡，或是其他区域时，本没有显示隐藏层，或是选项卡切换，但是由于这些元素上绑定了hover事件（或是mouseover事件），且无延时，这些时间就会立即触发，反而会对用户进行干扰。 <br/><br/>例如，在腾讯网首页，几乎对所有的鼠标经过事件进行了延时处理，例如其选项卡： <br/><br/> <br/><br/>或是其顶部的搜搜导航条，见下图： <br/><br/> <br/><br/>二、实例及演示 <br/>本文的主要内容就是展示我前几天写的鼠标延迟的方法，jQuery下的方法，水平拙劣，仅供参考。本文就以腾讯网首页搜搜搜索栏的一些鼠标经过效果为实例，演示jQuery下的延时处理。下图为demo页面的效果截图： <br/><br/> <br/><br/>三、代码与实现 <br/>说到延时，离不开window下的setTimeout方法，本实例的jQuery方法的核心也是setTimeout。代码不长，完整如下： <br/><br/>代码如下:<br/>(function($){ <br/>$.fn.hoverDelay = function(options){ <br/>var defaults = { <br/>hoverDuring: 200, <br/>outDuring: 200, <br/>hoverEvent: function(){ <br/>$.noop(); <br/>}, <br/>outEvent: function(){ <br/>$.noop(); <br/>} <br/>}; <br/>var sets = $.extend(defaults,options || {}); <br/>var hoverTimer, outTimer; <br/>return $(this).each(function(){ <br/>$(this).hover(fun<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=983&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=983&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=983&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=983&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=983&amp;Page=4">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=983">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=983">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>