jquery - 单击时显示/隐藏 div 使用 jQuery 创建 "click menu"

标签 jquery

我是 jQuery 新手,需要一些帮助来显示和隐藏单击时的 div。基本上,一旦用户单击链接,以及用户单击刚刚显示的 div 内的链接,我需要显示一个 div(包含一个小菜单)。或者点击 div 外部我需要再次隐藏 div。我的 HTML 看起来像这样(我将存在于页面上的许多地方)。

<a class="menu" href="#">Menu</a>
<div class="menu-content" style="display: none; position: absolute; border: 1px solid black; background-color: White;padding: 5px;">
 <div><a href="#">Menu option 1</a></div>
 <div><a href="#">Menu option 2</a></div>
</div>

我还有一个包含整个页面的 div,我想我应该设置另一个点击事件来隐藏该 div(以捕获实际菜单之外的点击)。

这是解决这个问题的正确方法吗?然后我该如何删除包装器 div 上的处理程序等。我还应该考虑什么来解决这个问题(如果这是正确的方法)?

更新:根据下面接受的答案,我添加了这个来解决它

//Need to return false here, otherwise the event will bubble up and trigger the hide on body
$('.menu').click(function() { $('.menu-content').hide();$(this).next().show();return false; });
$('body, .menu-content a').click(function() { $('.menu-content').hide();});
$('.menu-content a').click(function() { alert($(this)); });

最佳答案

html:

<a class="menu" href="#">Menu</a>
<div class='a_menu' style="display: none; position: absolute; border: 1px solid black; background-color: White;padding: 5px;">
 <div><a href="#">Menu option 1</a></div>
 <div><a href="#">Menu option 2</a></div>
</div>

script:

$('.menu').click(function() { $(this).next('.a_menu').show(); });
$('body, .a_menu a').click(function() { $('.a_menu').hide(); });

我可能会用 SPANS 替换 标签,而不是使用“cursor:pointer”样式

关于jquery - 单击时显示/隐藏 div 使用 jQuery 创建 "click menu",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605395/

相关文章:

javascript - 使用 for..in 循环对象

jquery - 如何在悬停时更改图 block 颜色并在鼠标移开时恢复为默认值而不影响文本颜色?

jquery - 如何在JSP中使用Jquery获取DataTables的总行数

javascript - jquery如何在数组中调用过滤函数

javascript - 将 Native Promise 转换为 JQuery 的 Promise(适用于 IE)

jQuery 目标父级

javascript - 推迟执行连接到控制事件的 Javascript 以支持外部 jQuery 函数

javascript - 当点击事件有子元素时不起作用

jquery - 新元素的onLoad,委托(delegate)/on?

javascript - 文本区域中的文本选择大写