我试图在另一个popover中放置一个bootstrap popover。第一个弹出窗口功能正常(打开并指定了HTML内容),但第二个弹出窗口正常打开时似乎没有我设置的任何设置(html:true,trigger:'manual'或html内容)。请参阅下面的演示:
<div>
<a href="#" id="popover1" data-original-title="<b>testing</b>" data-placement="bottom">Click</a>
<div id="popover_content_wrapper1" style="display: none">
<a href="#" id="popover2" data-original-title="<b>testing again</b>" data-placement="bottom">Click again</a>
</div>
<div id="popover_content_wrapper2" style="display: none">
<b>Hello world</b>
</div>
</div>
$('#popover1').popover({
html: true,
trigger: 'manual',
content: function() {
return $('#popover_content_wrapper1').html();
}
});
$(document).on('click', '#popover1', function() {
$(this).popover('toggle');
});
$('#popover2').popover({
html: true,
trigger: 'manual',
content: function() {
return $('#popover_content_wrapper2').html();
}
});
$(document).on('click', '#popover2', function() {
$(this).popover('toggle');
});
我很感激任何提示/帮助。
谢谢!
答案 0 :(得分:3)
这种情况发生的原因是在您初始化#popover2
时,它仍然没有&#34;存在&#34;。只有在#popover1
切换后才会存在。
因此,每次切换#popover1
时都必须初始化它,因为当它隐藏时,它会从DOM中删除(包含子项)
$(document).on('click', '#popover1', function() {
$(this).popover('toggle');
$('#popover2').popover({
html: true,
trigger: 'manual',
content: function() {
return $('#popover_content_wrapper2').html();
}
});
});
答案 1 :(得分:0)
由于bootstrap不支持popover内的popover,我在第一个popover的内容中初始化了popover。您可以在第一个弹出窗口内容中添加以下javascript代码,如下所示。
<script>
jQuery(function () {
jQuery('[data-toggle="popover"]').popover();
});
</script>
希望它可以提供帮助。