javascript - 菜单的 Jquery mouseover mouseout 问题

标签 javascript jquery

我正在尝试在悬停此网站的标题时显示一个菜单。

这是我的 jQuery:

$("#header").mouseover(function() {
    $('#header_links').stop(true, true).show(400);
});

$("#header").mouseout(function() {
    $('#header_links').stop(true, true).hide(400);
});

这是我的 HTML:

<body>
<div id="header">
  <div id="header_title">leks kamihira&nbsp;</div>
  <div id="header_links">
  <a href="work.php">works</a>
  <a href="bio.php">bio</a>
  <a href="blog">blog</a>
  <a href="links.php">links</a>
  <?php
  if (isset($_SESSION['logged_in'])) { ?>
  <a href="admin">admin</a> 
  <a href="admin/logout.php">logout</a>
  <?php } ?>
  </div>
</div>

问题是,每当 header_title div 或 header_links div 也悬停在上方时,header_links 就会消失。

有没有办法确保只要 div 包含在主标题 div 中,mouseover 和 mouseout 就可以正常运行?

最佳答案

你可以使用 mouseenter() mouseleave() :

$("#header").mouseenter(function() {
    $('#header_links').stop(true, true).show(400);
});

$("#header").mouseleave(function() {
    $('#header_links').stop(true, true).hide(400);
});

jsFiddle here.

Here's a nice simple demo显示 mouseover()mouseenter() 之间的区别。


你也可以使用它,正如 @PSL 提到的:

$("#header").on('mouseenter mouseleave',function() { 
   $('#header_links').stop(true, true).toggle(400); 
});

关于javascript - 菜单的 Jquery mouseover mouseout 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16701452/

相关文章:

javascript - 使用 Angular JS 动态绑定(bind)到多级深层对象的 ng-model

javascript - 根据输入值增量更改按钮颜色

javascript - 激活时的字体粗细 - CSS

javascript - 如何使用 jquery 在文本框中只允许数字和 2 位小数

javascript - 一键调用函数两次

c# - 根据时间更新值

javascript - .attr ("href"的问题)!有一个简单的方法可以解决这个问题吗?

javascript - 在 .each() 中添加变量的总和

javascript - jQuery .append 不适用于 $(document).ready

javascript - jQuery 范围 slider 最大 handle 被卡住