制作Twitter的Bootstrap 2.x Popover使用默认的Popover标题而不是html title属性中的标题?

时间:2013-07-04 17:10:31

标签: twitter-bootstrap

我有以下锚元素,点击时应显示Twitter Bootstrap Popover:

<a href="javascript:void(0)" class="popover_toggle" title="View Image">View Image</a>

我还有以下javascript来附加popover并为其设置默认标题:

$('.popover_toggle').popover({
    title: 'Login Required!'
});

我希望Popover具有在javascript“Login Required!”中定义的默认标题,而不是在锚元素“View Image”中定义的标题。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

由于http://twitter.github.io/bootstrap/javascript.html#popovers(如果title属性不存在,则为默认标题值)告诉您:如果您的元素有空或无标题属性,则只能设置标题。

当title选项设置为字符串时,它将在文档就绪时进行评估。在这里使用函数(评估触发器)仍然无效。

Popovers是工具提示类的扩展。它的构造函数调用fixTitle()。 fixTitle()将内容从title-attribute移动到data-orginal-title属性。因为这是在调用setTitle()之前完成的,你不能使用title函数。

解决你的问题否决了popover类的fixTitle():

$.fn.popover.Constructor.prototype.fixTitle = function () { return; }

现在popover将忽略(您的标题属性)并使用您在弹出式调用中设置的标题:

<强> HTML

   <a href="javascript:void(0);" class="popover_toggle" title="View Image">View Image</a>

<强>的javascript

$.fn.popover.Constructor.prototype.fixTitle = function () {return;}
$('.popover_toggle').popover({
    title: 'Login Required!',
});

另请参阅:http://bootply.com/66591