javascript – 如何使Bootstrap popover在单独的元素中使用HTML内容

前端之家收集整理的这篇文章主要介绍了javascript – 如何使Bootstrap popover在单独的元素中使用HTML内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将Bootstrap面板与Bootstrap popover功能结合起来.目标是在用户悬停面板标题显示弹出窗口.我已经有了这个工作,除了data-content =“”部分在内部有很多 HTML时变得非常难以管理.

下面是我正在使用的一些示例HTML. “负载HTML”的部分包含div,table,p等.

<div class="panel panel-default">
    <div class="panel-heading">
        <i class="fa fa-briefcase fa-fw"></i> 
        <abbr title="Panel title" data-container="body" data-toggle="popover" 
              data-placement="bottom" data-trigger="hover" data-html="true" 
              data-content="<div>LOADS OF HTML HERE</div>">
          Panel title
        </abbr>
        <div class="col-xs-6 col-md-4 pull-right" style="margin-top: -4px;">
            <!-- some buttons go here -->
        </div>
    </div>
    <!-- /.panel-heading -->
    </div>
    <!-- some panel content goes here -->
</div>

其他Bootstrap插件允许您将HTML放在单独的元素中,然后使用“data-target”属性引用该元素,从而解决了这个问题.不幸的是,Popover不支持这一点.如何在不编写特定于元素的JavaScript的情况下模仿此行为?

解决方法

您想要在弹出窗口中显示的任何文本/ HTML都可以添加到具有display:none;的DIV中.它的CSS属性.
您可以将函数传递给popover选项的content属性,该属性从隐藏的DIV获取内容.这样就不需要通过ID引用并插入脚本标记.

这是一个例子http://jsfiddle.net/wb3n8/

HTML:

<div class="container">
    <div class="panel panel-default">
        <div class="panel-heading">
             <h3 class="panel-title">Panel title 1</h3>

        </div>
        <div class="panel-body">Panel content 1</div>
        <div class="my-popover-content">Here is some hidden content 1</div>
    </div>
    <div class="panel panel-default">
        <div class="panel-heading">
             <h3 class="panel-title">Panel title 2</h3>

        </div>
        <div class="panel-body">Panel content 2</div>
        <div class="my-popover-content">Here is some hidden content 2</div>
    </div>
    <div class="panel panel-default">
        <div class="panel-heading">
             <h3 class="panel-title">Panel title 3</h3>

        </div>
        <div class="panel-body">Panel content 3</div>
        <div class="my-popover-content">Here is some hidden content 3</div>
    </div>
</div>

CSS:

.my-popover-content {
    display:none;
}

使用Javascript:

$(document).ready(function () {
    popoverOptions = {
        content: function () {
            // Get the content from the hidden sibling.
            return $(this).siblings('.my-popover-content').html();
        },trigger: 'hover',animation: false,placement: 'bottom',html: true
    };
    $('.panel-heading').popover(popoverOptions);
});

猜你在找的JavaScript相关文章