mouseover陷阱

说明:在给元素绑定事件时,允许事件冒泡,而ie是不法指定是否冒泡。
当我们给一个html元素绑定一个mouseover事件时,如果该元素有子元素,且子元素和该元素之间有空隙,当鼠标从该元素经过时,mouseover会触发多次。
首先,鼠标多外面到元素上,但未经过子元素,正好处在元素及子元素的空隙之间,触发元素的mouseover事件。
然后,鼠标继续移动,由元素进入子元素,此时会触发子元素的mouseover事件,由于事件的会向上冒泡,触发mouse结束事件。
最后,鼠标继续移动,由子元素进入元素,此时又会触发元素的mouseover事件。
所以,当我们给元素绑定mouseover事件传时,通常会触发三次。在做一些效果时会发生抖或闪的现像。
有的浏览器定义了另外的事件mouseenter,但并不是所有浏览器都支持。
注意到mouseenter事件是鼠标在元素之外时,经过元素时才触发,从元素到子元素没有反应。
只要在mouseover事件中判断触发事件时候,相关元素(relatedTarget或fromElement)是元素或在元素内(元素是否是触发元素的祖先),不在则是mouseenter,若是则已经进入过,无需触发。
以上讲的同样适用mouseleave,只是相关元素是触发元素或在其定才执行mouseout事件,既mouseleave。
jquery已经实现好了,如果浏览器支持mouseenter,mouseleave事件直接使用,否则用mouseover,mouseout模拟。
mouseoverjQuery中的一个事件,它在鼠标指针从一个元素移入另一个元素时触发,也被称为鼠标进入事件。 您可以使用以下代码来给一个元素添加mouseover事件的处理函数: ```javascript $(document).ready(function(){ $('div').mouseover(function(){ // 在这里添加鼠标进入时的处理逻辑 alert("鼠标进入了!"); }); }); ``` 上面的代码会在页面加载完毕后,给所有的`div`元素添加mouseover事件的处理函数。当鼠标指针进入一个`div`元素时,会弹出一个提示框显示"鼠标进入了!"。 请注意,mouseover事件只会在鼠标指针从一个元素移入另一个元素时触发,它不会在鼠标指针在同一个元素上移动时触发。如果您希望在鼠标指针在元素上移动时触发事件,可以考虑使用mousemove事件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [(一)jQuery常用鼠标触发元素事件(鼠标点击、进入、离开)](https://blog.csdn.net/zhangjie2016/article/details/118243496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [jQuerymouseover事件用法实例](https://download.csdn.net/download/weixin_38606897/13038806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值