javascript - 通过单击链接打开/隐藏已经打开的 div

标签 javascript jquery css

我制作了一个导航,当您单击 .products 链接时它会打开,如果您单击屏幕上的任意位置则会关闭。但似乎如果您在 .product 链接已经打开时单击它,它不会关闭。我怎样才能做到这一点?

$('#subnav').hide();

$(document).on('click', function(e) {
    if ( $(e.target).closest('.products').length ) {
        $("#subnav").show();
    }else if ( ! $(e.target).closest('#subnav').length ) {
        $('#subnav').hide();
    }
});

最佳答案

Demo

js

$("#subnav").hide();

$(".products").click(function (e) { //the usual behavior on click on .prducts
    $("#subnav").toggle();
    e.stopPropagation();
});

$("#subnav").click(function (e) { //ensures the #subnav will not hide on click on it
    e.stopPropagation();
});

$(document).click(function () { //ensures the #subnav will hide on click on document
    $("#subnav").hide();
});

关于javascript - 通过单击链接打开/隐藏已经打开的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25403324/

相关文章:

javascript - 由于 MIME 类型不匹配,功能被阻止(X-Content-Type-Options : nosniff)

jquery - CSS Jquery 滚动粘性菜单

javascript - 将innerHTML 与Greasemonkey 结合使用

html - 跨浏览器自定义复选框

android - 仅在 Android 上防止 'display:table' 垂直堆叠

javascript - 如何以及在何处定义 Angular $http 默认值?

javascript - 使 JavaScript 显示标题

javascript - JQuery - 随机 .replace() 错误

javascript - 在 jQuery DataTables 中的所有行前面放置一个按钮

css - 如何更改我的代码以使布局像 css 中的图片