jquery选择除div及其子元素之外的所有元素

我有这个html / css代码:

    

当用户点击除#sub_menu_area之外的所有其他内容时,我试图触发一个函数。 我使用js的以下部分:

 $('*').not('#submenu_area').click(function(){ if(slide == "open"){ $('#sliding_menu_area').toggle(effect); slide = "close"; } }); 

不幸的是,孩子们不知何故不被排除在外,并且点击它会翻转很多次。 有谁知道如何正确地做到这一点?! 🙂

编辑:所以我需要的是一个jquery选择器来正确获取: on click of all elements of body EXCEPT for #submenu_area and its descendants

试试这个:

 $(document).click(function(e) { if ($(e.target).is('#submenu_area, #submenu_area *')) { return; } if(slide == "open"){ $('#sliding_menu_area').toggle(effect); slide = "close"; } }); 

用这个:

 $('*').not("#submenu_area *").click(function() { ... });