0

Twitter Bootstrap Popovers のクラスで次のコードを使用して、一度に 1 つのポップオーバーしか開くことができず、ポップオーバーの外側をクリックすると閉じられるようにしています。ポップオーバー内をクリックしてもポップオーバーが閉じないようにすることで、ポップオーバー内のフォーム要素を効果的に使用できるようにします。

StackOverflow の質問に対するこの受け入れられた回答に基づいてソリューションを作成しました。要素の外側でクリックを検出するにはどうすればよいですか?

ポップオーバー内をクリックするとポップオーバーが閉じられることを除いて、ほぼ完全に機能します。.popover クラスのクリック リスナー内から StopPropagation が起動していません。

ポップオーバーを調べると、.popover クラスがあることがわかります。では、リスナーがクリックを検出しないのはなぜでしょうか?

HTML:

<a href="#" class="linkPopover">Popover One</a>
<a href="#" class="linkPopover">Popover Two</a>

脚本:

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

$('.popover').click(function(e) {
    e.stopPropagation(); // code inside this listener is not being fired
});

$('.linkPopover').click(function() {
    $('.linkPopover').not(this).popover('hide');
});

$('.linkPopover')
    .popover({
        content: 'test'
    })
    .click(function(e) {
        e.stopPropagation();
    });

ご協力ありがとうございました。

4

1 に答える 1