3

使用

$(document).popover({
    selector: '.selector'
});

忽略data-*目标元素中指定的任何属性。
例如

<a class="selector" title="bla" data-content="some html" data-html="true">link</a>

popover 将跳过data-html属性。

证明:http: //jsfiddle.net/YsEqb/

data-*问题是:在委托附件 ({ selector: '.selector' }) 的情况下,如何让引导程序考虑属性?

UPD
这已被确认为错误并已修复。版本 3.0.0 不会有这个错误。

4

3 回答 3

3

未使用数据元素,因为它们是在初始化时设置的,而不是在元素显示时设置的。这不适用于仅对初始化器中的所有设置使用相同选项的选择器。我不知道这是一个错误。(更新是的,它是固定的:https ://github.com/twbs/bootstrap/issues/9222 )

快速修复扩展您的显示功能并在此处(再次)设置选项:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/js/bootstrap.min.js"></script>
<script>    

var tmp = $.fn.popover.Constructor.prototype.show
$.fn.popover.Constructor.prototype.show = function () {
  var $e = this.$element
  if (typeof($e.attr('data-html')) != 'undefined')this.options.html = ($e.attr('data-html')==='true') 
  if (typeof($e.attr('data-placement')) != 'undefined')this.options.placement = $e.attr('data-placement');
  /* add other options here */
  tmp.call(this);
}

这适用于 Twitter 的 Bootstrap 2.x 和 Twitter 的 Bootstrap 3(RC1)

另见:http: //jsfiddle.net/bassjobsen/YsEqb/1/

请注意,当使用上述 CDN 时,您将在关闭弹出窗口时遇到 JS 错误(TypeError:this.remove 不是函数)请参阅:https ://github.com/twbs/bootstrap/issues/8887

于 2013-08-07T23:20:16.823 回答
1

指定选择器时,您将 data-html 值重置为默认值 false

如此明确地说明:

$(document).popover({
    selector: '[data-toggle="popover"]',
    html:true
});

在这种情况下,会将 data-html 值设置为 true。 JS小提琴

于 2013-08-02T09:04:09.313 回答
-2

而不是使用

 $(document).popover({
    selector: '.selector'
});

如果你想使用选择器,那么这是代码:

$('body').popover({
        selector: '.selector'
    });

或者

$('.selector').popover();
于 2013-08-02T08:22:19.600 回答