mouseover 和 hover 方法的不同?jquery
hover包括了鼠标移到对象上,同时鼠标再移出对象的过程,相应的子类也被选中。
mouseover是鼠标经过对象时,不包含他的子类同时被选中。
主要区别在于 hover元素的子类上也有添加了事件驱动。而mouseover 只对当前元素添加事件驱动。
且 hover 事件包含mouseover 事件
mousemove(fn);
在每一个匹配元素的mousemove事件中绑定一个处理函数。
hover(over, out);
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。而且,会伴随着对鼠标是否仍然处在特定元素中的检测(对子类的检测),如果是,则会继续保持“悬停”状态,而不触发移出事件(mouseout)。
$("td").hover(
function () {
$(this).addClass("hover");
},
function () {
$(this).removeClass("hover");
}
);
在jquery源码中有这么一段:
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
也就是说 hover!= mouseover+mouseout。但hover=mouseenter + mouseleave。
从前只知道像 hover、link、visited 和 active 这样的伪类只能应用到 a 标签,即要写成 a:hover、a:link、a:visited、a:active。其实这四个玩意是可以应用到其他的 html 标签、指定给其他定义的 class 上。
有关于 CSS 伪类可参考:http://www.w3school.com.cn/css/css_pseudo_classes.asp
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */