hover事件在CSS中的就是当鼠标悬停在结点上时,给结点的样式,当鼠标移开后,样式还会还原回去。这个在超链接结点上用的比较多,目前IE7以下版本只支持超链接中href属性不为空的结点应用此伪类。
jquery就是模拟的这样一个过程,当鼠标移动到结点上时,触发hover的第一个参数函数;鼠标从这个结点上移开时,触发第二个函数。
举例来说,假定获取页面中某个结点为node,则node.hover(fn1,fn2)实质上就是给node绑定了两个事件,node.onmouseover = fn1、node.onmouseout = fn2。
jquery中hover函数的源码:
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
显然,当你仅仅给hover一个参数时,鼠标经过和鼠标移开都会执行这个参数函数,也就是这个函数会执行两次。
____________________________________
第一个函数是在鼠标移动到该区域时触发,第二个函数则在鼠标移开该区域触发。