javascript - 显示/隐藏非父子元素时,悬停将不起作用

标签 javascript jquery html hover

我有这样的代码

<ul id="mainmenu">
 <li><a href="#">mainlink1</a></li>
 <li><a href="#">mainlink2</a></li>
 <li><a href="#">mainlink3</a></li>
<ul>

但我希望“mainlink2”有一个子菜单,我不想像子菜单一样放置它,因为当我将子菜单设置为“绝对”时,我无法将其宽度适合屏幕并成为中心,所以我在 'ul' 之外创建了一个 div,如下所示...

 <div>
  <ul id="submenu">
   <li>sub1</li>
   <li>sub2</li>
   <li>sub3</li>
  </ul>
 </div>

当我调用 javascript .hover 时,我看不到子菜单。我尝试通过记住主菜单的索引来将类添加到“子菜单”,当它匹配时,我添加类以显示子菜单,当不悬停时,我删除类。但是当我将鼠标从主菜单中离开时,悬停功能无法执行此操作,子菜单将隐藏。

最佳答案

试试这个:

HTML:

<ul id="mainmenu">
 <li><a href="#">mainlink1</a></li>
 <li class="mainlink2"><a href="#">mainlink2</a></li>
 <li><a href="#">mainlink3</a></li>
</ul>

<div class="submenu" style="position:absolute;background:#ddd; margin-left:-250px;left:50%;display:none;width:500px">
  <ul id="submenu">
   <li>sub1</li>
   <li>sub2</li>
   <li>sub3</li>
  </ul>
 </div>

JQUERY:

$(function(){

    $('.mainlink2').mouseenter(function(){
        $('.submenu').show(500);
    }).mouseleave(function(){
        $('.submenu').hide(500);
    });

});

关于javascript - 显示/隐藏非父子元素时,悬停将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959263/

相关文章:

javascript - 循环图像标题不起作用

javascript - 动画在一段时间后停止

html - 清除 <li> 标签之间的填充

javascript - Canvas 背景不在对象后面

javascript - jquery ajax 工作正常但 Angular ajax 不工作

javascript - 我可以使用 &lt;script async> 加载 babel-polyfill 吗?

javascript - 基本表单验证: why won't my class be added or removed?

javascript - HTML5 是否意味着更少使用 JavaScript?

javascript - 如何将while循环添加到随机发生器

javascript - 未使用的变量设置为什么?