我有一个html结构,如:
<div onmouseover="enable_dropdown(1);" onmouseout="disable_dropdown(1);">
My Groups <a href="#">(view all)</a>
<ul>
<li><strong>Group Name 1</strong></li>
<li><strong>Longer Group Name 2</strong></li>
<li><strong>Longer Group Name 3</strong></li>
</ul>
<hr />
Featured Groups <a href="#">(view all)</a>
<ul>
<li><strong>Group Name 1</strong></li>
<li><strong>Longer Group Name 2</strong></li>
<li><strong>Longer Group Name 3</strong></li>
</ul>
</div>
我希望onmouseout事件只能从div中触发,而不是div中的'a'或'ul'或'li'标签!
我的onmouseout功能如下:
function disable_dropdown(d)
{
document.getElementById(d).style.visibility = "hidden";
}
有人可以告诉我如何阻止事件冒泡?我尝试了其他网站上提供的解决方案(stopPropogation等),但我不确定如何在这种情况下实现它们。
任何帮助将不胜感激。
非常感谢!
答案 0 :(得分:0)
您真正想要使用的事件是 onmouseenter and onmouseleave ,但并未在所有浏览器中实施。您可以自己实现它们,但是在这种情况下,最好使用已经解决了跨浏览器问题的库。所以,在jQuery中
<div id="main">
My Groups <a href="#">(view all)</a>
<ul>
<li><strong>Group Name 1</strong></li>
<li><strong>Longer Group Name 2</strong></li>
<li><strong>Longer Group Name 3</strong></li>
</ul>
<hr />
Featured Groups <a href="#">(view all)</a>
<ul>
<li><strong>Group Name 1</strong></li>
<li><strong>Longer Group Name 2</strong></li>
<li><strong>Longer Group Name 3</strong></li>
</ul>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$('#main').hover(function() { enable_dropdown(1); }, // mouseenter
function() { disable_dropdown(1); }); // mouseleave
</script>