Javascript / jQuery:如何捕获针对除几个指定元素以外的任何元素的点击?

| 这个问题的措词可能非常混乱,所以这里有个简单的例子 http://www.andytimney.com/projects/jquerydropdown/ 如果单击\“ Archive \”,则会显示一个下拉列表。现在,如果要关闭它,则需要再次单击“存档”。但是,我想通过不以\“选项1 \”,\“选项2 \”为目标的任何单击来关闭它。与Facebook的操作类似,如果您单击右上角的“帐户”菜单。 我想到的唯一解决方案是将一个onClick函数绑定到该函数上,或者该函数不适用于页面上存在的所有元素(除了我将指定的几个元素之外)。该解决方案对我来说似乎有点不足,所以我想知道是否有一个更精明的解决方案,我不见了。     
已邀请:
阅读本文如何检测元素外部的点击?     
将click事件附加到主体并测试clicked项是否不是一个选项:
$(\'body\').click( function(e) {
                if(!$(e.target).parents(\'.option\').length && !$(e.target).hasClass(\'.option\')) {
                    $(\'.archive\').hide();
                }
            });
    
您是否尝试过文档单击并在触发菜单单击时停止传播事件?关于事件冒泡的有趣文章http://www.quirksmode.org/js/events_order.html     

要回复问题请先登录注册