首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当您使用jQuery单击页面中的某个位置时,关闭下拉菜单?

当您使用jQuery单击页面中的某个位置时,关闭下拉菜单?
EN

Stack Overflow用户
提问于 2014-10-20 05:48:33
回答 6查看 3.5K关注 0票数 4

我有一个简单的下拉菜单,我是显示在内联文本链接。当单击链接时,我使用jQuery单击事件显示下拉菜单。

我想做的是让下拉菜单返回到隐藏状态时,点击任何地方是。现在,您必须再次单击该链接以关闭菜单。

演示http://codepen.io/jasondavis/pen/sFpwK?editors=101

jQuery

代码语言:javascript
运行
复制
// Show Dropdown Menu when link is clicked
$(function(){
  $(".inline-dropdown-menu").click(function(e){
    $(this).find(".inline-dropdown-menu-list:first").toggle();
    e.preventDefault(); // Stop navigation
  });
});

HTML

代码语言:javascript
运行
复制
<span class="inline-dropdown-menu">
    <a href="">My Link that reveals a DropDown Menu when clicked on<span class="caret"></span></a>

    <ul class="inline-dropdown-menu-list">
        <li class="bottomBorder">
            <a href="" tabindex="-1">alphabetically</a>
        </li>
        <li>
            <a href="" tabindex="-1">2. the first report, alphabetically</a>
        </li>
        <li>
            <a href="" tabindex="-1">3. the first report, alphabetically</a>
        </li>
    </ul>
</span>
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-10-20 06:29:22

http://codepen.io/anon/pen/JmLsB

代码语言:javascript
运行
复制
$(function () {
    $(".inline-dropdown-menu").click(function (e) {
        $(".inline-dropdown-menu-list").hide(); // to hide other drop down
        $(this).find(".inline-dropdown-menu-list:first").toggle();

        e.preventDefault(); // Stop navigation
    });
});

// to hide drop down if you click other than inline-dropdown-menu class

$(document).click(function (e) {
    var container = $(".inline-dropdown-menu");
    if (!container.is(e.target) && container.has(e.target).length === 0) {
        $(".inline-dropdown-menu-list").hide();
    }
});
票数 4
EN

Stack Overflow用户

发布于 2014-10-20 06:29:43

这可能是有用的:

代码语言:javascript
运行
复制
var flag = false;

$(".inline-dropdown-menu").click(function(e){
    $(".inline-dropdown-menu-list").not(':hidden').hide();
    $(this).find(".inline-dropdown-menu-list:first").toggle();
    e.preventDefault(); // Stop navigation
    flag = true;   
});

$('body').click(function(){
    if (flag) {
        flag = false;
        return;
    }

    $(".inline-dropdown-menu-list").not(':hidden').hide();
});
票数 3
EN

Stack Overflow用户

发布于 2014-10-20 05:56:54

尝尝这个

代码语言:javascript
运行
复制
$(function(){
  $(".inline-dropdown-menu").click(function(e){
e.stopPropagation();
$(this).find(".inline-dropdown-menu-list:first").toggle();
e.preventDefault(); // Stop navigation
 });

$("body").click(function(e){
$(".inline-dropdown-menu-list").hide();
});

});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26459226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档