欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

mouseover 和 hover 方法的不同

shiping1 的头像

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 hover 与 mouseover 与mouseout 的区别

以前一直以为在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

普通分类: