jQuery по клику $ (документ) - получить элемент, по которому щелкнули - PullRequest
13 голосов
/ 20 января 2012

Я пытаюсь выяснить, как получить сыворотку с выбранным элементом, используя метод $ (document) .click ():

$(document).click(function() {
    if ($(this) !== obj) {
        obj2.hide();
    }
});

В приведенном выше примере obj - это объект выпадающего меню - и если щелкнуть по нему, я не хочу, чтобы он что-либо делал, но если щелчок был по телу страницы или любому другому element - должен вызывать метод hide ().

Ответы [ 2 ]

25 голосов
/ 20 января 2012

Вы можете использовать event.target . Вам также следует сравнивать элементы DOM вместо объектов jQuery, поскольку два объекта jQuery, содержащие одинаковые элементы, будут по-прежнему считаться разными:

$(document).click(function(event) {
    if (event.target !== obj[0]) {
        obj2.hide();
    }
});
12 голосов
/ 20 января 2012

Скорее всего, вы хотите проверить все родительские элементы + саму цель на .topNavigation class

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