jQuery中hover与mouseover和mouseout的区别分析

本文实例分析了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。

时间: 2024-12-20 01:03:17

jQuery中hover与mouseover和mouseout的区别分析的相关文章

hover和mouseover,mouseout的区别

说道hover和mouseover,mouseout的区别,不得不联系到mouseenter,mouseleave. mouseover,mouseout是指鼠标指针在穿过/离开被选元素或其子元素时触发. mouseenter,mouseleave是指鼠标指针在穿过/离开被选元素时触发. 举个简单例子: <div class="wapper"> <h1></h1> <p></p> </div> <div cl

JavaScript里mouseenter和mouseleave与mouseover和mouseout的区别

今天总结下mouseenter.mouseleave.mouseover.mouseout的区别,之前一直懵着用没仔细研究他们的区别,结果终于踢到铁板了. 上代码: <style> div { margin: 0 auto; } .box { box-sizing: border-box; padding: 30px 0; width: 300px; border: 1px solid #005AA0; } .sonBox { width: 150px; height: 150px; back

jQuery中关于height,innerWidth与outerWidth的区别

jQuery width() 和 height() 方法 width() 方法设置或返回元素的宽度(不包括内边距.边框或外边距). height() 方法设置或返回元素的高度(不包括内边距.边框或外边距). jQuery innerWidth() 和 innerHeight() 方法 innerWidth() 方法返回元素的宽度(包括内边距). innerHeight() 方法返回元素的高度(包括内边距). 公式为height()+padding*2 jQuery outerWidth() 和

jquery中map函数与each函数的区别

?jquery中的each函数和map函数的用法看起来差不多,但其实还是有一点区别的. ?其中一个重要的区别是,each返回的是原来的数组,并不会新创建一个数组.而map方法会返回一个新的数组.如果在没有必要的情况下使用map,则有可能造成内存浪费. ?例如: var items = [1,2,3,4]; ? $.each(items, function() { alert('this is ' + this); }); var newItems = $.map(items, function(

jquery中prop()方法和attr()方法的区别

jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值. 大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是un

JavaScript学习笔记——jquery中html()、text()、val()的区别

.html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值. 这三个方法功能上的对比 .html(),.text(),.val()三种方法都是用来读取选定元素的内容:只不过.html()是用来读取元素的HTML内容(包括其Html标签),.text()用来读取元素的纯文本内容,包括其后代元素,.val()是用来读取表单元素的"value"值.其中.和.text()方法不能使用在表单元素上,而.val()

asp.net中Request.QueryString与Request.Param的区别分析

看起来Request.Params更好一些,但是既然Param包括了所有,为什么还要有QueryString呢?? request.params其实是一个集合,它依次包括request.querystring.request.form.request.cookies和request.servervariables. 如果要在两个页面传递数据的话,只能用request.querystring.request.form.request.cookies Request.Params 是在 QueryS

Jquery hover方法使用及 mouseenter与mouseleave和 mouseover与mouseout的区别

定义和用法 hover() 方法规定当鼠标指针悬停在被选元素上时要运行的两个函数. jQuery 1.7 版本前该方法触发 mouseenter 和 mouseleave 事件. jQuery 1.8 版本后该方法触发 mouseover和 mouseout事件. 语法 $(selector).hover(inFunction,outFunction)//inFunction 必需,规定 mouseover 事件发生时运行的函数:outFunction 可选,规定 mouseout 事件发生时运

jQuery中mouseenter vs mouseover 以及 mouseleave vs mouseout

mouseenter 和 mouseleave 如果该对象有子元素,则进入子元素时不会触发对应的 mouseleave 和 mouseenter事件,可以想象子元素不存在,比如你和你的孩子住在一套房里,如果孩子还很小,尽管睡不同的房间,但你不会感觉你进入到另一个家庭中,这还是老子的家, 我说话还算数 :) #=.=! mouseover 和 mouseout 如果该对象有子元素,则进入子元素时会触发对应的事件,可以想象被子元素挖了个坑, mouseover从父到子实际上是父over父out(父)