如何使用twitter-bootstrap和popover修复滚动?

sha*_*aka 22 css jquery popover twitter-bootstrap

我正在使用twitter-bootstrap和popovers.

我面临以下问题:当用户点击在页面底部打开弹出窗口的链接时,它会首先滚动到页面顶部.这要求用户向下滚动以查看弹出窗口.在twitter-bootstrap网站上的演示中,我没有看到这一点,并且想知道我是否可以在这个问题上得到帮助.

<div class="span1" style=" width: 60px; ">
    <a href="#" class="example2" rel="popover" data-html="true" data-placement="left" data-content="&lt;a href = '/social/2lPdXV1KO4s/Bhangra indian Jingle Bells balle balle Merry Christmas'&gt;&lt;img src='http://i4.ytimg.com/vi/2lPdXV1KO4s/hqdefault.jpg'&gt;&lt;/a&gt;" data-original-title="Bhangra indian Jingle Bells balle balle Merry Christmas">
        <img src="http://graph.facebook.com/1236870349/picture">
    </a>

    <div class="popover fade left in" style="top: 831px; left: 805.61669921875px; display: block;">
    <div class="arrow"></div>
    <div class="popover-inner">
        <h3 class="popover-title">Bhangra indian Jingle Bells balle balle Merry Christmas</h3>
        <div class="popover-content">
            <p><a href="/social/2lPdXV1KO4s/Bhangra indian Jingle Bells balle balle Merry Christmas"><img src="http://i4.ytimg.com/vi/2lPdXV1KO4s/hqdefault.jpg"></a></p>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

haj*_*poj 37

看起来你现在必须阻止链接的默认行为,因为他们添加了在hover/focus上弹出popover的选项.现在链接将激活,因为href指向"#",它将带您到页面顶部.在旧版本之前,它用于自动防止此默认值.

您的javascript代码应如下所示:

<script>
$("a[rel=popover]")
    .popover()
    .click(function(e) {
        e.preventDefault();
     });
 </script> 
Run Code Online (Sandbox Code Playgroud)

用这样的HTML

<a href="#" 
   class="btn btn-large btn-danger" 
   rel="popover" 
   data-content="And here's some amazing content. It's very engaging. right?" 
   data-original-title="A Title">
     Click to toggle popover
 </a>
Run Code Online (Sandbox Code Playgroud)

这是一个有效的JSfiddle.http://jsfiddle.net/hajpoj/KPU47/7/

编辑:或者你可以使用div而不是锚标记,而不必做整个防止默认的事情.

<div 
   class="btn btn-large btn-danger popover-link"
   data-content="And here's some amazing content. It's very engaging. right?"
   data-original-title="A Title">Click to toggle popover
</div>?

<script>
    $(".popover-link").popover();
</script>
Run Code Online (Sandbox Code Playgroud)


Flo*_*bre 11

我遇到了与popover完全相同的问题,用href ="javascript://"替换href ="#"就足够了.

  • 这非常有效.好的解决方案 (2认同)
  • 它只是通过执行提供的 js 代码来阻止浏览器的默认行为,比使用 jquery 单击事件的方式更简单。它可能看起来很hacky,但在我看来它根本不是。 (2认同)