JQuery Mouseleave无法正常工作?

时间:2010-08-09 04:34:21

标签: jquery

我有一个小问题,我正在使用此网站上其他人的帮助进行下拉。使用以下html和代码

HTML

<div id="navbar">
    <!-- Navigation -->
    <ul>
        <li id="current"><a href="dashboard.php" class="nav-dashboard">Dashboard</a></li>
        <li><a href="client.php" class="nav-client">Client</a></li>
        <li><a href="how-it-works.php" class="nav-system">System</a></li>
        <li id="nav-mail"><a href="service-plans.php" class="nav-mail">Mail</a></li>
    </ul>
    <!-- End Navigation -->
</div>

<div id="dropdown_client">
    <ul>
        <li><a href="dashboard.php" class="nav-dashboard">Dashboard</a></li>
        <li><a href="client.php" class="nav-client">Client</a></li>
        <li><a href="how-it-works.php" class="nav-system">System</a></li>
        <li><a href="service-plans.php" class="nav-mail">Mail</a></li>
    </ul>
</div>

<div id="dropdown_mail">
     <ul id="dropdown-mail">
        <li><a href="email_templates.php">Email Templates</a></li>
    </ul>
</div>

JS

var MailTimeout;

function hideMailDropdown() {
  $("#dropdown-mail").hide();
  clearTimeout(MailTimeout);
}

$(document).ready(function() {
  $("#nav-mail").mouseover(function(){
    $("#dropdown-mail").show();
    clearTimeout(MailTimeout);
  });

  $("#dropdown-mail,#nav-mail").mouseleave(function(){
    var MailTimeout=setTimeout("hideMailDropdown()",500); /* Wait half a second before hiding */
  });
});

然而,当我转到#downdown-mail时,它会在半秒后消失。我怎么能这样做它不会消失,除非鼠标同时发送#downdown-mail和#nav-mail

谢谢!

1 个答案:

答案 0 :(得分:0)

同时清除#dropdown-mail上的超时时间:

$("#dropdown-main,#nav-mail").mouseover(function(){
  $("#dropdown-mail").show();
  clearTimeout(MailTimeout);
});