使用mouseup的意外行为

时间:2015-04-01 12:45:19

标签: javascript jquery

当我点击菜单时,菜单显示,但当指针离开菜单时,它会在2-5秒后隐藏。

我希望菜单在点击时切换,并在我点击页面上的任何其他位置时显式隐藏,如this demo.所示 this fiddle 我的代码如下:

$(document).ready(function() {
  $(".MyAccount").click(function() {
    var X = $(this).attr('id');
    if (X == 1) {
      $(".submenu").hide();
      $(this).attr('id', '0');
    } else {
      $(".submenu").show();
      $(this).attr('id', '1');
    }
  });
  //Mouseup textarea false
  $(".submenu").mouseup(function() {
    return false
  });
  $(".myaccount").mouseup(function() {
    return false
  });
  //Textarea without editing.
  $(document).mouseup(function() {
    $(".submenu").hide();
    $(".MyAccount").attr('id', '');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="MyAllMenu" style='margin: 50px'>
  <div class="MyMenu">
    <a class="MyAccount">
      <span>My Settings</span>
    </a>
    <div class="submenu" style="display: none;">
      <ul class="AllMenuList">
        <li>
          <a href="/Default.aspx">Dashboard</a>
        </li>
        <li>
          <a href="#Profile">Profile</a>
        </li>
        <li>
          <a href="#settings">Settings</a>
        </li>
        <li>
          <a href="#feedback">Send Feedback</a>
        </li>
        <li>
          <a href="#signout">Sign Out</a>
        </li>
      </ul>
    </div>
  </div>

</div>

2 个答案:

答案 0 :(得分:1)

检查FIDDLE。 onclick隐藏/显示菜单现在正在工作。我已将(“。myaccount”,“。submenu”)添加到鼠标文件事件中。

$(document).ready(function() {
    $(".MyAccount").click(function () {

        var X = $(this).attr('id');
        if (X == '1') {
            $(".submenu").hide();
            $(this).attr('id', '0');
        }
        else {
            $(".submenu").show();
            $(this).attr('id', '1');
        }
    });

    //Textarea without editing.
    $(document).not(".myaccount",".submenu").mouseup(function () {
        $(".submenu").hide();
        $(".MyAccount").attr('id', '');
    });
 });

答案 1 :(得分:0)

问题在于我有一个字典应用程序,可以在悬停时从页面中读取任何文本,并且在禁用此功能时,每件事都可以正常工作。

我没有注意到,因为我在两台计算机上试过,而且我在两台计算机上都使用了这个应用程序。