mouseover 和 hover 方法的不同?jquery
(2011-05-05 10:00:04)hover包括了鼠标移到对象上,同时鼠标再移出对象的过程,相应的子类也被选中了。
而mouseover是鼠标经过对象时,不包含他的子类同时被选中。
主要区别在于 hover元素的子类上也有添加了事件驱动。而mouseover 只对当前元素添加事件驱动。
且 hover 事件包含mouseover 事件
mousemove(fn);
在每一个匹配元素的mousemove事件中绑定一个处理函数。
hover(over, out);
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。而且,会伴随着对鼠标是否仍然处在特定元素中的检测(对子类的检测),如果是,则会继续保持“悬停”状态,而不触发移出事件(mouseout)。
$("td").hover(
function () {
$(this).addClass("hover");
},
function () {
$(this).removeClass("hover");
}
);
来自 http://blog.sina.com.cn/s/blog_62d9b0bf0100r35v.html
jquery示例 mouse hover/ mouseOver事件
已有 2477 次阅读2008-5-20 20:11 |个人分类:javascript|
html file:
<script type="text/javascript" src="libs/jquery/jquery.js"></script>
<script type="text/javascript" src="js/frontjs.js"></script>
frontjs.js:
当鼠标移动到一个class 为wines的链接上时, 自动在其后添加id为countryList的list. 当鼠标跳至另一个class 为wines的链接上时, 去除前一个list, 生成新的list.
本例可以只用mouseOver()事件,$('.wines').mouseOver(winesMouseOver);
$(document).ready(function(){
winesMouseOver = function(){
var $thisCategory = $(this); //获取事件发生目标
var categoryhref = $thisCategory.attr('href'); //取得链接属性
var hrefANZ = categoryhref+'&co=1'; //list中的三个链接
var hrefItaly = categoryhref+'&co=2';
var hrefOthers = categoryhref+'&co=3';
//去除已有的id 为 countryList的list, 否则会生成多个list.
$('#countryList').remove();
var countryList = '<ul id="countryList"><li><a href="'+hrefANZ+
'">Au & NZ</a></li><li><a href="'+hrefItaly+
'">Italy</a></li><li><a href="'+hrefOthers+
'">Others</a></li></ul>'; //list本身
$thisCategory.after(countryList); //添加list
}
winesMouseOut = function(){
}
$('.wines').hover(winesMouseOver, winesMouseOut); //加入到鼠标hover事件中.
});
来自
http://bbs.phpchina.com/blog-66527-33894.html以前一直以为在jquery中其实mouseover和mouseout两个事件等于hover事件。两个没什么区别,应该是一样的。但昨天一个动画效果才让我见识了,这两个并不能等同。
<div class="wrapper">
<div class="img"></div>
<div class="text"></div>
</div>
<div class="point"></div>
在wrapper上加事件,当鼠标移动到wrapper上的时候让class="point"的层放大。但如果用mouseover和 mouseout事件的话,当鼠标移动到wrapper层后,point层会变大,
但当鼠标在img和text层之间进行移动的时候,point层会变大变小,不停的变化。这并不是我们想要的结果,我们想要的是只要鼠标在wrapper层上,
无论是img还是text上,point就变大,但在鼠标未移出 wrapper层的情况下,point层不变小。
慢慢思路也清晰了,我们不用mouseover和mouseout而用hover问题就解决了。
这么简单的问题我们竟然花了好长时间才解决,真是夸张。写篇日志以作纪念。
补充:后来我师父说其实在jquery源码中有这么一段:
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
也就是说hover!= mouseover+mouseout。但hover=mouseenter + mouseleave。
来自
http://www.cnblogs.com/weekend001/archive/2011/06/09/2076293.html