Search code examples
jqueryhtmlselectorexcept

How to select body except one element?


I'm using a color-picker which should be hidden when a click is made anywhere outside it. The problem is, it disappears even when the click is made inside the picker.

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

I tried this, but it would show the picker and hide it immediately. Does anybody have a suggestion?


Solution

  • Try using event.target to obtain the element that was clicked:

    $("body").click(function(event) {
        if (event.target.id != "picker") {
            $("#picker").fadeOut();
        }
    });