Bootstrap popover没有显示出来

时间:2015-10-23 01:59:23

标签: jquery twitter-bootstrap

我试图通过点击某个链接在一个页面上显示多个弹出式窗口。我将在一个div上向您展示一个例子。以下是这样的:

$(".tutorial").on('click', function(){ 
    $('[data-toggle="popover"]').popover();
});

<li>
   <a href="#" class="tutorial">
      <span class="glyphicon glyphicon-book" aria-hidden="true"></span> 
      Tutorial Mode
   </a>
</li> 


<div data-container="body" data-toggle="popover" data-placement="right" 
     data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." 
     style="height:100%; " class="col-xs-3 label-positive" 
     data-original-title="" title="">

    <h2 style="height:100%; font-weight:bold; padding: 15px 1px 15px 1px; border-radius:5px;" class="text-center"> +3$</h2>
</div>

当我点击div弹出窗口时没有问题,但是当我点击链接时没有任何反应。控制台或其他任何东西都没有错误,没有任何反应

2 个答案:

答案 0 :(得分:1)

.popover()只是创建了popover()bootstrap元素,因此必须在某个地方,然后触发它以显示你这样做:

       $(".tutorial").on('click', function(){ 
          $('[data-toggle="popover"]').popover('show');
       });

实际上我可能会弄错,我认为你调用.popover()使任何元素成为一个弹出窗口,但是如果你使用的是data属性,那么bootstrap.js应该已经处理了这一行{{1} }

$('[data-toggle="popover"]').popover();将显示,.popover('show')将摆脱popover

答案 1 :(得分:0)

Bootstrap popovers需要通过jQuery手动初始化。将其添加到.js文件中:

$('[data-toggle="popover"]').popover();

如果您在一个页面上有多个弹出式窗口,请使用此脚本,以便一次只允许显示一个。

$('body').on('click', function (e) {
    $('[data-toggle="popover"]').each(function () {
    //the 'is' for buttons that trigger popups
    //the 'has' for icons within a button that triggers a popup
        if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {
            $(this).popover('hide');
        }
    });
});