3

私はカラーピッカーを使用していますが、それ以外の場所でクリックすると非表示になります。問題は、ピッカー内でクリックしても消えてしまうことです。

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

これを試しましたが、ピッカーが表示され、すぐに非表示になります。誰か提案がありますか?

4

2 に答える 2

22

event.targetを使用して、クリックされた要素を取得してみてください。

$("body").click(function(event) {
    if (event.target.id != "picker") {
        $("#picker").fadeOut();
    }
});
于 2011-08-09T08:42:32.810 に答える
3
$("body").click(function(e) {
    if ($(e.target).attr('id') == 'picker') {
        return;
    } else {
        $('#picker').fadeOut();
    }
});
于 2011-08-09T08:46:14.023 に答える