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();
});
ご協力ありがとうございました。