javascript - 在其他地方单击时菜单应该消失

标签 javascript jquery html css toggle

我有一个 div,只要单击一个按钮,它就应该是可见的。这就像一个菜单。之后,当再次单击按钮或用户单击页面上的其他位置(整个主体)时,它应该消失(切换)。

在我目前的方法中,菜单会不断切换,因此两个功能(见下文)都会被触发。

$("#b1").click(function() {
  $("#menu").toggle("slide");
});

$("body").click(function() {
  if ($("#menu").is(":visible")) {
    $("#menu").toggle("slide");
  }
});

我应该如何改进我的代码,以便菜单仅在再次单击按钮或用户单击其他地方时消失?

Here is a fiddle .

最佳答案

使用$(window) 附加事件,然后您可以在任何地方关闭菜单。

$("#b1").click(function() {
  $("#menu").toggle("slide");
   return false;
});

$(window).click(function() {
  if ($("#menu").is(":visible")) {
    $("#menu").toggle("slide");
  }
});

查看演示:https://jsfiddle.net/wru8mvxt/5/

关于javascript - 在其他地方单击时菜单应该消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38566390/

相关文章:

javascript - JavaScript 代码中的随机 src 值

javascript - 未定义的 AJAX Laravel 5.2 消息

javascript - Struts2中如何获取特定未选中的复选框

html - Div 高度 100% 带滚动条

javascript - jQuery 点击事件在插件中停止工作

javascript - jQuery:$(this) 和 this 之间的区别

javascript - 改变jqplot中y轴标签区域的宽度

javascript - 如何将 jQuery 函数翻译为原生 JavaScript?

html - 如何不验证具有必需属性的 HTML5 文本框

javascript - addClass() 仅定向子元素(而不是嵌套元素)