jQuery中的mouseenter和mouseleave事件

news/2024/7/11 1:34:48 标签: jquery, 前端开发, web

今天做一个下拉菜单的时候碰到了一个bug,用mouseout的时候,鼠标还没移出拉菜单就自动关闭了,
看案例:http://www.css88.com/demo/mouseleave/2.html

经过几番查阅发现了jQuery中还有mouseenter和mouseleave事件,这两个事件在手册中找不到,所以特地查阅了一番。

大家知道事件的冒泡特性,在上面的BUG中也正是因为这个冒泡特性,对于mouseover事件来说 ,当鼠标从其他元素 移动到 child节点时发生,但此事件会冒泡 所以会导致 parent 也出发mouseover。如果我们对 parent注册了 mouseover监听,从 parent移动到child 同样出发parent的mouseover 有时候我们不希望这样的事情发生。

对于 mouseover 和mouseenter 两个事件 最大的区别就是 mouseenter 是 不冒泡的事件,这时候 如果注册的监听 是mouseenter的话 无论鼠标从任何元素 移动到child时 只有child元素 发生mouseenter事件 而其祖宗节点 都不会因为冒泡 而触发此事件。

对于 mouseout 和mouseleave 也是如此 当鼠标从child 移出时 mouseout同样会冒泡到 parent 从而触发parent的 mouseout 二mouseleave 同样无此问题。

看demo:http://www.css88.com/demo/mouseleave/1.html

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《jQuery中的mouseenter和mouseleave事件》


http://www.niftyadmin.cn/n/1732333.html

相关文章

用Jquery轻松实现网页换肤

现在介绍网页换肤的例子已经数不胜数,自己也没有仔细研究过,刚搞遇到类似这个问题,网上查了资料解决了问题,感觉很有用,就记录了下来和大家分享一下。效果很简单,我就直接讲怎么使用的。 其中用到了jquery.…

jQuery hover 与 mouseover 与mouseout 的区别

以前一直以为在jquery中其实mouseover和mouseout两个事件等于hover事件。两个没什么区别&#xff0c;应该是一样的。但昨天一个动画效果才让我见识了&#xff0c;这两个并不能等同。 <div class"wrapper"> <div class"img"></div> <d…

解决Jquery Ajax提交服务器端接收中文乱码问题

看到有朋友说到用post提交方式解决&#xff0c;我指定了methord"post",仍然解决不了&#xff0c;说一下解决办法&#xff0c;客户端进行编码&#xff0c;服务器端解码&#xff0c; 客户端&#xff1a;var where escape($(#where).val()); 服务器端&#xff1a; …

jquery中的hover方法教程—明河谈jquery

jQuery中的hover方法是个非常常用的方法&#xff0c;接受二个参数&#xff0c;第一个参数为鼠标移入对象时触发的事件&#xff0c;第二个参数为鼠标移出对象时触发的事件。 很多人误以为hover()是mouserover和mouseout的结合体&#xff0c;实际上不是。 hover mouseentermous…

Jquery中如何获取元素的文本,值,属性和内容

jQuery DOM 操作jQuery 中非常重要的部分&#xff0c;就是操作 DOM 的能力。jQuery 提供一系列与 DOM 相关的方法&#xff0c;这使访问和操作元素和属性变得很容易。提示&#xff1a;DOM Document Object Model&#xff08;文档对象模型&#xff09;DOM 定义访问 HTML 和 XML …

jQuery下获取浏览器、可视范围及其他的各种宽高

<script type"text/javascript"> $(document).ready(function() { alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(document.body).height());//浏览器时下窗口文档body的高…

Jquery中Show(),hide()方法的使用

jQuery hide() 和 show()通过 jQuery&#xff0c;您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素&#xff1a; $("#hide").click(function(){ $("p").hide();}); $("#show").click(function(){ $("p").show();}); 语法&am…

css问题filter: alpha(opacity=100,finishopacity=0,style=2)

alpha是来设置透明度的,它的基本属性是filter&#xff1a;alpha&#xff08;opacity&#xff0c;finishopacity&#xff0c; style&#xff0c;startX&#xff0c;startY&#xff0c;finishX&#xff0c;finishY&#xff09;. opacity代表透明度数,选值0-100,0是完全透明,100是…