以前一直以为在class="tags" href="/tags/JQUERY.html" title=jquery>jquery中其实mouseover和mouseout两个事件等于hover事件。两个没什么区别,应该是一样的。但昨天一个动画效果才让我见识了,这两个并不能等同。
<div class="class="tags" href="/tags/WRAPPER.html" title=wrapper>wrapper">
</div>
在class="tags" href="/tags/WRAPPER.html" title=wrapper>wrapper上加事件,当鼠标移动到class="tags" href="/tags/WRAPPER.html" title=wrapper>wrapper上的时候让class="point"的层放大。但如果用mouseover和mouseout事件的话,当鼠标移动到class="tags" href="/tags/WRAPPER.html" title=wrapper>wrapper层后,point层会变大,但当鼠标在img和text层之间进行移动的时候,point层会变大变小,不停的变化。这并不是我们想要的结果,我们想要的是只要鼠标在class="tags" href="/tags/WRAPPER.html" title=wrapper>wrapper层上,无论是img还是text上,point就变大,但在鼠标未移出class="tags" href="/tags/WRAPPER.html" title=wrapper>wrapper层的情况下,point层不变小。
慢慢思路也清晰了,我们不用mouseover和mouseout而用hover问题就解决了。
这么简单的问题我们竟然花了好长时间才解决,真是夸张。写篇日志以作纪念。
补充:后来我师父说其实在class="tags" href="/tags/JQUERY.html" title=jquery>jquery源码中有这么一段:
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
也就是说hover!=mouseover+mouseout。但hover=mouseenter+mouseleave。