jQuery on click$(文档)-获取clicked元素

jQuery on click$(文档)-获取clicked元素,jquery,click,hide,Jquery,Click,Hide,我试图找出如何使用$(document)获取单击的元素whey。click()方法: 在上面的示例中,obj是对象,是下拉菜单-如果单击,我不希望它做任何事情,但是如果单击是在页面主体或任何其他元素上-它应该触发hide()方法。您可以使用。您还应该比较DOM元素而不是jQuery对象,因为包含相同元素的两个jQuery对象仍将被视为不同: $(document).click(function(event) { if (event.target !== obj[0]) {

我试图找出如何使用$(document)获取单击的元素whey。click()方法:

在上面的示例中,obj是对象,是下拉菜单-如果单击,我不希望它做任何事情,但是如果单击是在页面主体或任何其他元素上-它应该触发hide()方法。

您可以使用。您还应该比较DOM元素而不是jQuery对象,因为包含相同元素的两个jQuery对象仍将被视为不同:

$(document).click(function(event) {
    if (event.target !== obj[0]) {
        obj2.hide();
    }
});

您很可能希望检查所有父元素+目标本身的
.topNavigation

$(document).click(function(event) {
    if ( !$(event.target).closest( ".topNavigation" ).length ) {
        obj2.hide();
    }
});

谢谢Frederic-jquery对象不可能吗obj是:var obj=$(this.find('.topNavigation');-所以它是指特定的对象?我试过这样做,但没有任何运气:if(event.target!=$('.topNavigation'))-有什么想法吗?因为
obj
是由
find()
返回的,所以它是一个jQuery对象。这些对象是通过引用进行比较的,而不是通过内容进行比较的,这就是为什么即使它们包含相同的元素,它们也被认为是不同的。使用
$(“.topNavigation”)[0]
返回DOM元素,您可以对其进行比较。Frederic-非常感谢-它现在可以工作了!我试过使用obj[0]-它也很有效-所以问题解决了-非常感谢您的帮助。请注意,如果您在该类中有多个元素,或者如果该类的子元素是clicked,则它将不起作用。我认为这将更好地使用我正在寻找的内容,因为它还引用了项,它覆盖了topNavigation容器,如果在里面的话-很好的提示-谢谢!效果很好。我使用console.log(event.target)查找被单击的元素。
$(document).click(function(event) {
    if ( !$(event.target).closest( ".topNavigation" ).length ) {
        obj2.hide();
    }
});