为什么我的bootstrap popover没有打开?

时间:2017-03-07 11:24:02

标签: javascript jquery html twitter-bootstrap

我遇到了无法打开的Bootstrap弹出窗口的问题。它不是页面中唯一的popover,其他工作正常,因此缺少库是没有问题的。

使用Firefox& IE 11。

解决后编辑:解决方案与下面的答案相同,因为data-content为空。虽然当前版本(3)的文档没有以任何方式提及此行为,但Bootstrap 4 alpha Doc说:零长度titlecontent值永远不会显示弹出窗口。< / strong>这显然也适用于当前版本。

请在下面找到我的HTML&amp; Javascript代码。
简而言之,我正在做的事情:初始化Popover并在div中打开populate popover内容(divid作为数据属性传递)。

通过代码调试时,我可以看到popover被初始化了所有内容,但点击链接时没有任何反应。

不幸的是,没有出现错误。有人可以借我的眼睛吗?我太长时间盯着它,看不出错误......

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 - 在popover打开时调用的函数:

 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();
            }
        }

2 个答案:

答案 0 :(得分:1)

修改:看起来问题在于锚点上的UIButton属性。它是缺失的,也是必需的。这是一个有关调整的工作示例:https://jsfiddle.net/j87vb46L/3

<br>可能会在您引用它时未定义吗?即尝试重新排序源并定义“更高”。

答案 1 :(得分:-1)

$(function () {
$('[data-toggle="popover"]').popover()
})

我试过这个,经过一些更改后使用这个脚本 这将激活你的popover