在点击页面上的任何其他内容时隐藏元素

Kem*_*min 25 jquery

提到Franek在这里发现的问题我还有一个问题.

上面链接的解决方案对我有用,直到我向我的页面引入了另一个菜单.在这种情况下,有两个菜单彼此相邻.当我单击其中一个时,会显示相关的div,显示可供选择的选项.然后,当我点击文档时,div将关闭.但当我点击任何其他元素时,它仍然显示.

对我来说,一个解决方案是运行代码来关闭任何其他元素点击菜单以及文档点击.

我怎样才能做到这一点?

(菜单:单击其标题时不可见的div元素变为可见)

Anh*_* Do 32

这稍微好一点,因为它还会检查被点击元素的父级:

$(document).click(function(e) {
    var target = e.target;

    if (!$(target).is('#menu') && !$(target).parents().is('#menu')) {
        $('#menu').hide();
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 注意,这不适用于任何元素,包括阻止DOM传播(冒泡)的后代. (2认同)

com*_*oma 13

单击要隐藏的菜单中的每个元素对吗?

$(function() {
    $('*').click(function(e) {
        if(e.target.id != 'menu') {
            $('#menu').hide();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)