1

ツール ヒントを使用してページにエラー メッセージを表示します。ビュー内の他の場所をクリックしたときにツール ヒントを閉じる必要があります。以下のコードを使用して、このアクションを制御します。

$(':not(.qtip)').click(function(){
   $('.qtip').hide();
});

「.qtip」は、ツールチップ領域をマークするために使用されます。ツールチップ自体は、出てきたときに新しいものを作成します。ここで起こったことは、ツールチップをクリックすると消えてしまうことです。

しかし、全身の代わりにセレクターの小さなスケールを使用すると、うまく動作します。これは少し奇妙です。例:

$("#id").not('.qtip').click(function (){
    $('.qtip').hide();
});
4

4 に答える 4

2

documentツールチップの外側でクリックを処理することだけをターゲットにすることをお勧めします。のセレクター:not(.qtip)は、非常に大きな結果セットを返す可能性があります。

$(document).on('click', function() {
    $('.qtip').hide();
}

まだ行っていない場合は、ツールチップ自体で、クリック イベントがドキュメント レベルにバブリングしないようにする必要があります。

$('.qtip').on('click', false);
于 2013-03-28T13:19:30.383 に答える
1

イベント バブリングを有利に使用する

$(document).on("mouseup", function (e) {
    var target = e.target || e.srcElement;
    var container = $(".qtip");

    if (container.not(target) && container.has(target).length === 0)
    {
        container.hide();
    }
});
于 2013-03-28T13:20:13.010 に答える
1

次の 2 つのことを行うことをお勧めします。

$(document).click(function() {
    $('.qtip').hide();
});


$('.qtip').click(function(e){
    e.stopPropagation();
});
  1. ドキュメントをクリックして非表示にします.qtip
  2. のクリック時にイベントのバブリングを停止します.qtip。ここでは、クリックは親までトラバースしません。
于 2013-03-28T13:26:03.643 に答える
0

試す

$(document).on("click", function(e) {
    var qtip = $(e.target).closest('.qtip');
    if(!qtip.length)
        $('.qtip').hide();
});
于 2013-03-28T13:21:55.100 に答える