【问题标题】:Why does my bootstrap popover not open?为什么我的引导弹出窗口没有打开?
【发布时间】:2017-03-07 11:24:02
【问题描述】:

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

使用 Firefox 和 IE 11。

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

请在下面找到我的 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


    【解决方案1】:

    编辑:看起来问题出在锚点上的 data-content 属性上。它缺失,并且是必需的。这是该调整的一个工作示例:https://jsfiddle.net/j87vb46L/3


    onLoadPopoverFunction 在您引用它的位置是否未定义?即尝试重新排序源并定义“更高”。

    【讨论】:

    • 不,这不是问题所在。但无论如何,谢谢。 onLoadPopoverFunction 在弹出窗口打开时被调用,但我什至没有到达它打开的地步。单击应该打开弹出窗口的链接什么也不做,控制台中也没有显示错误
    • 啊哈 - 看起来锚上的 data-content 属性丢失了,并且是必需的。这是一个展示它的示例:jsfiddle.net/j87vb46L/3
    • 非常感谢您的努力,它成功了!如果你想编辑你的答案,我会接受。
    【解决方案2】:
    $(function () {
    $('[data-toggle="popover"]').popover()
    })
    

    我试过这个,在一些改变后使用这个脚本 这将激活您的弹出窗口

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多