使用 jquery 的 bootstrap 弹出框链
chain of bootstrap popovers using jquery
我正在尝试从另一个弹出窗口中的一个弹出窗口打开子菜单,但我无法做到这一点。这是示例代码
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<ul id="menu1" class="dropdown-menu">
<li id="instance_1" data-toggle="popover2" style="cursor:pointer">Instance 1</li>
<li id="instance_2">Instance 2</li>
</ul>
<ul id="menu2" class="dropdown-menu">
<li id="instance_3">Instance 3</li>
<li id="instance_4">Instance 4</li>
</ul>
<button type="button" class="btn btn-lg btn-Primary"
data-toggle="popover1">
Click to toggle popover
</button>
<script>
$('[data-toggle="popover1"]').popover({
html: true,
placement: 'auto right',
container: 'body',
trigger: 'click',
template: '<div id="x" class="popover" role="tooltip"><div class="arrow"></div><div class="popover-content"><div class="data-content"></div></div></div>',
content: function () {
return $('#menu1').html();
}
});
$('[data-toggle="popover2"]').popover({
html: true,
placement: 'auto right',
container: 'body',
trigger: 'click',
template: '<div id="y" class="popover" role="tooltip"><div class="arrow"></div><div class="popover-content"><div class="data-content"></div></div></div>',
content: function () {
return $('#menu2').html();
}
});
</script>
有人可以帮助我了解如何执行此操作。提前致谢!!
这里的问题是,当调用 $('[data-toggle="popover2"]').popover()
函数时,它只将侦听器添加到初始模板。当您基于 HTML 填充第一个弹出窗口时,此侦听器不会继续存在。然后解决方案是 运行 .popover()
函数 再次 在生成该内容后(当弹出窗口打开时)。这是一个代码笔,在第一个弹出窗口上使用点击侦听器演示了这一点:
https://codepen.io/zeiv/pen/BJmowO
上面的笔将需要一些摆弄才能正确处理所有细节(例如,关闭第一个弹出窗口不会关闭第二个弹出窗口),但希望你明白了。如果您需要帮助,我可以再做一些工作。
我正在尝试从另一个弹出窗口中的一个弹出窗口打开子菜单,但我无法做到这一点。这是示例代码
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<ul id="menu1" class="dropdown-menu">
<li id="instance_1" data-toggle="popover2" style="cursor:pointer">Instance 1</li>
<li id="instance_2">Instance 2</li>
</ul>
<ul id="menu2" class="dropdown-menu">
<li id="instance_3">Instance 3</li>
<li id="instance_4">Instance 4</li>
</ul>
<button type="button" class="btn btn-lg btn-Primary"
data-toggle="popover1">
Click to toggle popover
</button>
<script>
$('[data-toggle="popover1"]').popover({
html: true,
placement: 'auto right',
container: 'body',
trigger: 'click',
template: '<div id="x" class="popover" role="tooltip"><div class="arrow"></div><div class="popover-content"><div class="data-content"></div></div></div>',
content: function () {
return $('#menu1').html();
}
});
$('[data-toggle="popover2"]').popover({
html: true,
placement: 'auto right',
container: 'body',
trigger: 'click',
template: '<div id="y" class="popover" role="tooltip"><div class="arrow"></div><div class="popover-content"><div class="data-content"></div></div></div>',
content: function () {
return $('#menu2').html();
}
});
</script>
有人可以帮助我了解如何执行此操作。提前致谢!!
这里的问题是,当调用 $('[data-toggle="popover2"]').popover()
函数时,它只将侦听器添加到初始模板。当您基于 HTML 填充第一个弹出窗口时,此侦听器不会继续存在。然后解决方案是 运行 .popover()
函数 再次 在生成该内容后(当弹出窗口打开时)。这是一个代码笔,在第一个弹出窗口上使用点击侦听器演示了这一点:
https://codepen.io/zeiv/pen/BJmowO
上面的笔将需要一些摆弄才能正确处理所有细节(例如,关闭第一个弹出窗口不会关闭第二个弹出窗口),但希望你明白了。如果您需要帮助,我可以再做一些工作。