问题
I'm trying to figure out how to get the clicked element whey using $(document).click() method:
$(document).click(function() {
if ($(this) !== obj) {
obj2.hide();
}
});
In the example above the obj is the object is the dropdown menu - and if clicked I don't want it to do anything, but if the click was on the body of the page or any other element - it should trigger the hide() method.
回答1:
You can use event.target. You should also compare DOM elements instead of jQuery objects, since two jQuery objects containing the same elements will still be considered as different:
$(document).click(function(event) {
if (event.target !== obj[0]) {
obj2.hide();
}
});
回答2:
You most likely want to check all parent elements + the target itself for .topNavigation
class
$(document).click(function(event) {
if ( !$(event.target).closest( ".topNavigation" ).length ) {
obj2.hide();
}
});
来源:https://stackoverflow.com/questions/8945825/jquery-on-click-document-get-clicked-element