1

このjsFiddleからわかるように、「x」をクリックするだけでなく、外側のクリックでも閉じることができるBoostrapPopoverがあります。

ただし、別のボタンのポップオーバーをクリックしても、最初のポップオーバーは消えません。

クリックすると最初のポップオーバーが消えるようにJavaScriptを変更する方法はありますか?

HTML:

<form action="quote-calculator.php" method="post">

<div class="bs-docs-example" style="padding-bottom: 24px;">
  <a href="#" class="more-info btn btn-large btn-danger" data-toggle="popover" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a>
</div>

<div class="bs-docs-example" style="padding-bottom: 24px;">
  <a href="#" class="more-info btn btn-large btn-danger" data-toggle="popover" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a>
</div>

<div class="bs-docs-example" style="padding-bottom: 24px;">
  <a href="#" class="more-info btn btn-large btn-danger" data-toggle="popover" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a>
</div>

</form>

jQuery:

    var isVisible = false;
    var clickedAway = false;

    $('.btn-danger').popover({
            html: true,
            trigger: 'manual'
        }).click(function(e) {
            $(this).popover('show');
        $('.popover-content').append('<button class="close" style="position: absolute; top: 0; right: 6px;">&times;</button>');
            clickedAway = false
            isVisible = true
            e.preventDefault()
        });

    $(document).click(function(e) {
      if(isVisible & clickedAway)
      {
        $('.btn-danger').popover('hide')
        isVisible = clickedAway = false
      }
      else
      {
        clickedAway = true
      }
    });
4

2 に答える 2

1

追加してみてください

$('.close:visible').trigger('click');

$(this).popover('show');

Updated Demo Fiddle

于 2013-03-27T14:20:20.223 に答える
1

追加

$('.popover').hide();

$(this).popover('show');

これにより、現在のクラス要素を表示する前に、すべてのpopoverクラス要素が非表示になります。

幸運を!

于 2013-03-27T19:37:05.660 に答える