为什么把鼠标移到div里的超链接上,就触发了这个div的mouseout事件呢?

玫_瑰骑_士 2014-11-06 04:41:59
代码如下:

$(document).ready(function()
{
$("#1").hover(function()
{
$("#2").css("background-color","brown");
});

$("#1").mouseout(function()
{
$("#2").css("background-color","green");
});
});



<div id="1" style="width: 200px;height: 200px;background-color: red;margin-bottom: 10px;">
<a>hehe</a>
</div>
<div id="2" style="width: 200px;height: 200px;background-color: green;margin-bottom: 10px;"></div>


如下图,当你把鼠标放到div上的时候,第二块div正常变成棕色:


但如果你把鼠标移到超链接hehe上的时候,就触发了mouseout方法,下面那块div恢复了绿色:


不是太明白为什么会这样~
...全文
236 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
玫_瑰骑_士 2014-11-06
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
mouseout改为mouseleave事件。
谢谢回答,现在搞明白了~
玫_瑰骑_士 2014-11-06
  • 打赏
  • 举报
回复
引用 2 楼 u013472677 的回复:
不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。 只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。 在你的代码里把mouseout改为mouseleave之后就不会出现你上面的情况,只有当鼠标移出#1时才会触发 具体参考w3C上关于mouseout介绍
原来是这样,谢谢啦~
KK3K2005 2014-11-06
  • 打赏
  • 举报
回复
因为事件源 target 改变了 那么原来的那个 target就会触发mouseout事件
qcxl 2014-11-06
  • 打赏
  • 举报
回复
不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。 只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。 在你的代码里把mouseout改为mouseleave之后就不会出现你上面的情况,只有当鼠标移出#1时才会触发 具体参考w3C上关于mouseout介绍
Go 旅城通票 2014-11-06
  • 打赏
  • 举报
回复
mouseout改为mouseleave事件。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧