我现在有了基本的,普通的菜单树,如下所示:
- <ul id="nav">
- <li>
- <a href="#">home</a>
- <div class="controls">Some controls go here</div>
- <ul>
- <li>
- <a href="#">item 1</a>
- <div class="controls">Some controls go here</div>
- </li>
- <li>
- <a href="#">item 2</a>
- <div class="controls">Some controls go here</div>
- </li>
- </ul>
- </li>
- </ul>
具有“控件”类的div隐藏起来.我想要发生的是,当你将鼠标悬停在li上时,各个li的控件显示(当你移开鼠标时,它们会再次隐藏).当您将鼠标悬停在其中一个嵌套的li上时会出现问题,它也会显示它的父控件.这是我正在使用的jQuery:
- $("#nav li").hover(
- function() {
- $(".controls:first",this).css("display","block");
- },function() {
- $(".controls:first","none");
- }
- );
谢谢你的帮助.
雷米
解决方法
尝试在悬停功能中停止事件传播,以防止事件冒泡到父级.如果您的“悬停”元素靠得很近,您可能还需要查看
hoverIntent插件来解决“闪烁”悬停效果的问题.
- $("#nav li").hover(
- function(e) {
- e.stopPropagation();
- $(".controls:first","none");
- }
- );