Как выбрать тело кроме одного элемента? - PullRequest
3 голосов
/ 09 августа 2011

Я использую палитру цветов, которая должна быть скрыта, когда щелчок сделан где-то вне его. Проблема в том, что он исчезает, даже если щелчок сделан внутри сборщика.

$('body :not(#picker)').click(function() {
    $('#picker').fadeOut();
});

Я попробовал это, но он бы показал сборщик и сразу его спрятал. У кого-нибудь есть предложение?

Ответы [ 2 ]

19 голосов
/ 09 августа 2011

Попробуйте использовать event.target , чтобы получить элемент, по которому щелкнули:

$("body").click(function(event) {
    if (event.target.id != "picker") {
        $("#picker").fadeOut();
    }
});
3 голосов
/ 09 августа 2011
$("body").click(function(e) {
    if ($(e.target).attr('id') == 'picker') {
        return;
    } else {
        $('#picker').fadeOut();
    }
});
...