【发布时间】:2017-03-07 11:24:02
【问题描述】:
我遇到了无法打开的 Bootstrap 弹出框的问题。它不是页面中唯一的弹出框,其他弹出框也可以正常工作,因此缺少库没有问题。
使用 Firefox 和 IE 11。
解决后编辑:解决方案如下面的答案,因为data-content 是空的。虽然当前版本 (3) 的文档没有以任何方式提及此行为,但 Bootstrap 4 alpha Doc 说:零长度 title 和 content 值永远不会显示弹出窗口。显然也适用于当前版本。
请在下面找到我的 HTML 和 Javascript 代码。
简而言之,我在做什么:初始化 Popover 并在打开时使用 div 中的内容填充 popover(div 作为数据属性传递)。
通过代码进行调试时,我可以看到弹出框已初始化并且所有内容都已初始化,但是单击链接时没有任何反应。
很遗憾,没有出现任何错误。有人可以借我他们的眼睛吗?我已经盯着它太久了,看不到任何错误......
HTML:
<a data-toggle="popover" data-infotype="scheduledlines" data-divid="${posItemStatus.index}" data-placement="bottom" data-title="" data-trigger="click">
<span class="fa fa-info-circle" aria-hidden="true"></span>
<span class="sr-only">Show info</span>
</a>
Javascript(初始化):
$(document).ajaxSuccess(function(){
var init = function(){
$('[data-toggle="popover"]').each(function(index) {
$(this).popover({
html: true
});
$(this).on('show.bs.popover', onLoadPopoverFunction);
$(this).on('remove', function(){
$(this).popover('hide');
});
});
}
window.setTimeout(init,100);
});
Javascript - 在弹出框打开时调用的函数:
var onLoadPopoverFunction = function(event){
var element = $(event.target);
var infoType = $(element).data('infotype');
[...]
if(infoType === "scheduledlines"){
var id = $(element).data('divid');
$(element).data('bs.popover').options.content = $('#ScheduledLines_'+id).html();
}
}
【问题讨论】:
标签: javascript jquery html twitter-bootstrap