複数のポップオーバーと Bootstrap 3 で機能するものを見つける必要がありました。
これが私がしたことです:
ポップオーバーを機能させたい要素が複数あったため、ID を使用したくありませんでした。
マークアップは次のようになります。
<button class="btn btn-link foo" type="button">Show Popover 1</button>
<button class="btn btn-link foo" type="button">Show Popover 2</button>
<button class="btn btn-link foo" type="button">Show Popover 3</button>
ポップオーバー内の保存ボタンと閉じるボタンのコンテンツ:
var contentHtml = [
'<div>',
'<button class="btn btn-link cancel">Cancel</button>',
'<button class="btn btn-primary save">Save</button>',
'</div>'].join('\n');
3つのボタンすべてのjavascript:
このメソッドは、コンテナがデフォルトで本体に添付されていない場合に機能します。
$('.foo').popover({
title: 'Bar',
html: true,
content: contentHtml,
trigger: 'manual'
}).on('shown.bs.popover', function () {
var $popup = $(this);
$(this).next('.popover').find('button.cancel').click(function (e) {
$popup.popover('hide');
});
$(this).next('.popover').find('button.save').click(function (e) {
$popup.popover('hide');
});
});
コンテナが「本体」に取り付けられている場合
次に、aria-describeby を使用してポップアップを見つけて非表示にします。
$('.foo').popover({
title: 'Bar',
html: true,
content: contentHtml,
container: 'body',
trigger: 'manual'
}).on('shown.bs.popover', function (eventShown) {
var $popup = $('#' + $(eventShown.target).attr('aria-describedby'));
$popup.find('button.cancel').click(function (e) {
$popup.popover('hide');
});
$popup.find('button.save').click(function (e) {
$popup.popover('hide');
});
});