8

我希望将弹出框包含在可折叠的 div 中:http: //jsfiddle.net/nathan9/qgyS7/。但是,popover 似乎仅限于 div 的范围。有没有办法防止剪裁?

<a href="#toggle" data-toggle="collapse" data-target="#toggle" onClick="return false;">Toggle collapse</a>
<div id="toggle" class="collapse" style="background-color: yellow">
    Content of collapsible div. Click for popover: 
    <i class="icon-info-sign" id="info"></i>
</div>

...

<script>
    $('#info').popover({ html: true, placement: 'left', title: 'Popover', content: "<ul><li>The</li><li>popover</li><li>is</li><li>clipped.</li></ul>" });
</script>
4

2 回答 2

9

使用计时器始终是一项有风险的业务。我使用了 Mike Lucid 的变体,它监听可折叠事件,显示和隐藏。

这是一个工作小提琴

代码如下:

$(document).ready(function(){
  $('#toggle')
    .on('shown', function(evnt) {
      $(evnt.target).addClass('visible');  
    })
    .on('hide', function(evnt) {
      $(evnt.target).removeClass('visible');  
    })
  ;   
});

如果您希望您的可折叠在加载时可见,请不要忘记在您的可折叠 div 中添加使其可见

编辑

从 Bootstrap 2.3 开始,工具提示和弹出框有了一个新container选项。如果您将容器设置为“body”,您的工具提示和弹出框将不会被剪裁。这是一个工作小提琴

希望有帮助。

于 2013-02-03T13:12:47.750 回答
2

添加.collapse.in {overflow:visible}似乎可以解决问题

http://jsfiddle.net/ZArX7/

编辑:以上答案仅适用于 chrome

这是一个延迟添加类的jquery。

     $('#toggle_link').click(function() {
    if($('#toggle').hasClass('in')){
        $('#toggle').removeClass('visible');
    }else{
        setTimeout(function() {
            $('#toggle').addClass('visible');
        }, 1000);
    }
});   

此解决方案有效

http://jsfiddle.net/fnP7y/

于 2012-11-07T00:36:03.133 回答