我想开发自己的手风琴/滑动菜单。 (作为一个侧面的问题,任何可以很容易地定制/皮肤的好问题?)为什么mouseleave触发
我发现,当我滑下“内部”菜单时,似乎会触发。由于它是“内在”,我的鼠标肯定没有离开#mainnav
。
我的测试页here
没有恼人警报测试here
$("#mainnav").mouseleave(function() {
alert("mouseleave #mainnav");
});
更完整的源:
$(function() {
$("#mainnav > li > a").hover(mouseOver);
$("#mainnav").mouseleave(function() {
alert("mouseleave #mainnav");
});
});
function mouseOver() {
$(this).next("ul").slideDown("fast", function() {
$("li:has(ul) > a", this).hover(mouseOver);
});
}
#mainnav, #mainnav ul { list-style: none; padding: 0; margin: 0; background: #bbb; } #mainnav ul { display: none; margin: 5px 10px; } #mainnav a { display: block; padding: 5px 10px; margin: 2px 0; background: yellow; }
<ul id="mainnav"> <li><a href="#">Test</a></li> <li><a href="#">Test</a></li> <li><a href="#">Test</a></li> <li> <a href="#">Test</a> <ul> <li><a href="#">Test</a></li> <li> <a href="#">Test 1</a> <ul> <li><a href="#">Test</a></li> <li><a href="#">Test</a></li> <li><a href="#">Test</a></li> </ul> </li> <li><a href="#">Test</a></li> </ul> </li> <li><a href="#">Test</a></li> <li><a href="#">Test</a></li> </ul>
也许它与事件传播离子?也许你需要停止传播? – 2009-07-26 13:22:55
我在想,选择器有些奇怪,这似乎是正确的寿,也许是因为利润率导致这... stopPropagation哪里/何时?为什么你说因为传播而死? – iceangel89 2009-07-26 13:46:48
@ iceangel89在你的问题提供的链接不工作,你可以创建一个JSFiddle或分享任何链接到您的网站? – 2013-09-15 03:11:07