1

重複の可能性:
ページのどこからでもクリックして Twitter Bootstrap ポップオーバーを閉じるにはどうすればよいですか?

ユーザーがポップオーバーの外側をクリックした場合にのみ、Twitter Bootstrap ポップオーバーを閉じるようにしたいと思います。ポップオーバー内をクリックしてポップオーバーを閉じたくありません。私は検索しましたが、これに対する答えは、ポップオーバーの内側をクリックしてもポップオーバーを閉じるためのものです。コードの解決策を探しているので、可能であれば宝石の提案もしないでください。ありがとうございました!

html:

<a id="test-button" href="#" class="btn">Popover</a>

JavaScript/jquery:

$('#test-button').popover({content:"stuff", trigger:'click'});
4

3 に答える 3

6

この質問は重複しているように見えますが、上位の回答はうまくいきませんでした。.popover に新しいクリック バインドを追加することでコードを変更することになりました。これにより、目的の効果が得られました。

jsFiddle の作業: http://jsfiddle.net/asanger/AFffL/266/

var isVisible = false;
var clickedAway = false;

$('.popup-marker').popover({
        html: true,
        trigger: 'manual'
    }).click(function(e) {
        $(this).popover('show');
        clickedAway = false
        isVisible = true
        e.preventDefault()
            $('.popover').bind('click',function() {
                clickedAway = false
                //alert('popover has been clicked!');
            });
    });

$(document).click(function(e) {
  if(isVisible && clickedAway)
  {
    $('.popup-marker').popover('hide')
    isVisible = clickedAway = false
  }
  else
  {
    clickedAway = true
  }
});
​
于 2012-11-21T03:40:06.467 に答える
1

手動トリガーを使用します。

$('.popup-marker').popover({
    html: true,
    trigger: 'manual'
});
于 2012-11-21T03:14:16.140 に答える
0

最上位要素のクリック イベントにアタッチできます。いえ

$("#main").click(function () {
    $('#mything').popover('hide')
});
于 2012-11-21T03:24:21.103 に答える