我正在使用输入组文本框,我需要Bootstrap 3 popover才能工作,弹出模板应该由我设计并定义。 所以我目前和我在一起的HTML是:
<div class="row">
<div class="col-sm-2">
<div class="input-group">
<input type="text" class="form-control jq-timePicker" value="09:30">
<span class="input-group-addon" rel="popover">
<span class="glyphicon glyphicon-time"></span>
</span>
</div>
</div>
</div>
我希望在单击输入组图标时打开弹出窗口。在这种情况下,当单击带有glyphicon-time类的span时,将使用以下HTML显示或使用以下HTML显示:
<div class="timePickerWrapper popover">
<div class="arrow"></div>
<div class="popover-content">
<div class="timePickerCanvas"></div>
<div class="timePickerClock timePickerHours"></div>
<div class="timePickerClock timePickerMinutes"></div>
</div>
</div>
JS写道:
$(document).ready(function () {
var popoverTemplate = ['<div class="timePickerWrapper popover">',
'<div class="arrow"></div>',
'<div class="popover-content">',
'<div class="timePickerCanvas"></div>',
'<div class="timePickerClock timePickerHours"></div>',
'<div class="timePickerClock timePickerMinutes"></div>',
'</div>',
'</div>'].join('');
$('body').popover({
selector: '[rel=popover]',
trigger: 'click',
template: popoverTemplate,
placement: "bottom",
html: true
});
});
请参阅此处的小提琴:http://www.bootply.com/4fMzxGRpik
任何人都可以帮我纠正我正在做的错误以及需要做些什么来展示popvhover。
答案 0 :(得分:21)
你错过了popover的内容,你需要这样的东西
$(document).ready(function () {
var popoverTemplate = ['<div class="timePickerWrapper popover">',
'<div class="arrow"></div>',
'<div class="popover-content">',
'</div>',
'</div>'].join('');
var content = ['<div class="timePickerCanvas">asfaf asfsadf</div>',
'<div class="timePickerClock timePickerHours">asdf asdfasf</div>',
'<div class="timePickerClock timePickerMinutes"> asfa </div>', ].join('');
$('body').popover({
selector: '[rel=popover]',
trigger: 'click',
content: content,
template: popoverTemplate,
placement: "bottom",
html: true
});
});
答案 1 :(得分:2)
我希望模板中包含所有HTML。它是这样的:
使用Java脚本
$(".btn").popover({
template: $("#selector").html(),
placement: "auto"
});
以HTML
<div id="selector">
Anything you want in your popovers, either dynamic or static
<div>
答案 2 :(得分:1)
@ code-jaff这是一个很好的答案,但我注意到工作演示的弹出窗口看起来不像是从按钮出来了。如果发生在其他任何人身上,请尝试添加容器:&#39; body&#39;到popover选项。像这样:
$('body').popover({
selector: '[rel=popover]',
trigger: 'click',
content: content,
template: popoverTemplate,
placement: "bottom",
html: true,
container: 'body'
});
答案 3 :(得分:0)
我想尝试的是最小配置,不想将代码拆分成JS和HTML,这是我的解决方案。
这是我发现的,
引导程序版本 4.5.2 添加popper js
将您的代码放在 data-content 属性中。
这是我的 HTML 代码
<a tabindex="0" html="true" class="btn btn-sm" role="button" data-toggle="popover" data-trigger="focus" title="Dismissible popover" data-content="And heres some <b>amazing content</b>. Its very engaging. Right?">Dismissible popover</a>
这是我的JS代码
$('[data-toggle="popover"]').popover({
html : true
});