Javascript 自举';s popover仅适用于按钮-不适用于锚点或跨距

Javascript 自举';s popover仅适用于按钮-不适用于锚点或跨距,javascript,twitter-bootstrap,popover,Javascript,Twitter Bootstrap,Popover,我包括tooltip.js和popover.js 当我的标记看起来是这样时: <button class="popover-dismiss" data-toggle="popover" title="sheen" data-content="&lt;a href=&quot;sheen60&quot;&gt;60&lt;/a&gt;, &lt;a href=&quot;sheen80&quot;&gt;80&

我包括tooltip.js和popover.js

当我的标记看起来是这样时:

<button class="popover-dismiss" data-toggle="popover" title="sheen" 
data-content="&lt;a href=&quot;sheen60&quot;&gt;60&lt;/a&gt;, &lt;a href=&quot;sheen80&quot;&gt;80&lt;/a&gt;">
PDS
</button>
然后一切正常。但是,当我将
按钮
更改为
a
时,它会断开。控制台中没有错误。它只是没有弹出窗口

<a href="javascript://" class="popover-dismiss" data-toggle="popover" title="sheen" 
data-content="&lt;a href=&quot;sheen60&quot;&gt;60&lt;/a&gt;, &lt;a href=&quot;sheen80&quot;&gt;80&lt;/a&gt;">
PDS
</a>


完全相同的属性。只是一个锚而不是一个按钮。我也尝试过使用span,但它似乎也不起作用。

尝试为
popover()调用设置
container:'body'
选项

好吧,原来Twitter引导程序中有一个bug。它已经被打开和关闭了好几次

目前有一个解决方案:

1) 初始化引导弹出窗口时不要使用
trigger:focus

2) 相反,使用
data trigger=“focus”
作为触发popover的项目的属性
3) 具有popover的项目需要显式声明
tabindex=“-1”

跨浏览器工作示例如下:

我在一个真实的用例场景中也证实了这一点


Edit:@xandriel注意到
tabindex=0
现在似乎会导致浏览器本机焦点边框,这正是我最初的答案所要求的。他们说tabindex的
-1
消除了这个边界。

好吧,我想如果你想使用“focus”作为触发器,你的元素必须是可聚焦的。设置tabindex会强制元素可聚焦,这就是为什么设置tabindex时触发器“聚焦”开始工作的原因

如果您不希望用户在点击tab键的元素上实际停止,请考虑使用tabindex-1


就这些。触发器:焦点可以在JS初始化中使用。

不需要解决方法或任何东西。如果您通过JS设置信息,效果很好,下面是一个示例:

HTML:

<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-toggle="popover" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>
$(function() {
    $(document).popover({
        selector: '[data-toggle=popover]',
        trigger: 'focus'
    });
});

jsIDLE:

我没有问题。。好。。。真奇怪。你让我更深入一点。在Chrome中,我的页面和你的笔都有一个工作按钮和一个断开的链接。在Firefox中,“我的页面”和“你的笔”都有一个坏掉的按钮和一个工作链接…真的很有趣。。。我正在使用Firefox。@Stanley如果你通过谷歌来到这里希望找到解决方案,请查看下面我的自我回答,并让我知道它是否对你有效。@ChrisSobolewski它对我有效。谢谢设置
container:“body”
并没有帮助,只有严格遵守这三条建议才使它对我有效。非常感谢。升级到Bootstrap Nuget package>3.2.0后,似乎至少不再需要tabindex=“0”。我必须另外添加
href=“#”
,因为我的
a
以前缺少一个。将其与Bootstrap 3.3.5一起使用谢谢,这在Bootstrap 4中仍然是一个问题。必须做以上所有的事情来修复它——这是一个很好的建议
tabindex=-1
也适用于我–
tabindex=0在弹出框可见时在元素周围绘制难看的焦点边框。
$(function() {
    $(document).popover({
        selector: '[data-toggle=popover]',
        trigger: 'focus'
    });
});