2
4

6 回答 6

4

对于任何将这篇文章作为存档的人来说,这对我有用。

不要使用 mouseout() 尝试使用 mouseleave() 作为标签。

我的问题是 div 内的元素触发多个 mouseout 调用的结果。父对象上的鼠标离开解决了这个问题。

于 2011-01-27T01:10:44.913 回答
3

如果您使用的是 jQuery,则应切换到该hover方法。

否则,检查e.target || e.srcElement.

于 2010-03-22T16:06:52.090 回答
0

<span>好吧,你确实有一个垂直间隙(我可以看到两个标签之间有一个换行符)。去掉它。

还值得注意的是,您的 HTML 远非有效。像这样的内联元素<a>不能包含像<div>.

于 2010-03-22T16:27:18.650 回答
0

破解了我的解决方案。位置:相对于锚点和内部的虚拟 div,该 div 以 100% 的宽度和高度扩展,绝对定位以准确覆盖锚点。悬停时不再闪烁链接,也不应该触发任何虚拟的 mouseout 事件。这是代码,这是一个链接

<html><head><style>
a {
float:left;
border:1px solid #b0b;
display:block;
position:relative;
}
.shpf,.shpe {
background:#b0b; float:left;
width:2px; height:2px;
padding:0; margin:0;
line-height:0;
}
.shpe {
background:#fff;
}
.shpbrk {
float:left; clear:both;
}
.dummy {
z-index:1;
position:absolute;
left:-1px; top:-1px; /* Fix for parent's border, isn't required for no border */
border:1px solid;
border-color:inherit;
background:transparent;
width:100%;
height:100%;
}
</style></head><body>
<a id="happy" href="javascript:void(0);"><div class="dummy"></div><div id="happy_button" class="button"><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpf"></span><span class="shpf"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span></div></a>
</body></html>
于 2010-03-23T00:27:49.243 回答
0

不要将块元素包装在锚标签中。锚标签是内联元素。如果您尝试将它们用作 URL 哈希的命名位置(即,用于内部页面导航),只需将它们放在页面必须滚动到的内容之上。

如果您试图在单击 div 时发生某些事情,请在 div 上放置一个 onclick 处理程序。

于 2010-03-22T16:07:27.253 回答
0

这是重现问题的代码的一部分,您可以复制并粘贴此代码以进行测试,也可以在此处查看我为测试上传的相同内容

<html><head><style>
a {
float:left;
border:1px solid #b0b;
display:block;
}
.shpf,.shpe {
background:#b0b; float:left;
width:2px; height:2px;
padding:0; margin:0;
line-height:0;
}
.shpe {
background:#fff;
}
.shpbrk {
float:left; clear:both;
}
</style></head><body>
<a id="happy" href="javascript:void(0);"><div id="happy_button" class="button"><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpf"></span><span class="shpf"></span><span class="shpf"></span><span class="shpf"></span><span class="shpe"></span><span class="shpe"></span><span class="shpbrk"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span><span class="shpe"></span></div></a>
</body></html>

注意:即使使用 <!doctype html> 允许锚是块元素,因为 ricebowl 指出结果是一样的。将鼠标悬停在锚点上会触发 mouseout 事件,并且还会使状态栏闪烁目标链接文本(至少在 Firefox 中,没有在其他地方测试过)。跨度是空的,这通常是错误的,但即使有   也会发生同样的情况。在他们里面。

于 2010-03-22T23:46:02.963 回答