12

我正在使用 Twitter 的 Bootstrap js 中的弹出框功能。我有一个按钮,单击该按钮时会执行此 javascript:

$("#popover_anchor").popover({trigger: "manual",
                              placement: "below",
                              offset: 10,
                              html: true,
                              title: function(){return "TITLE";},
                              content: function(){return "CONTENT TEXT";}});
$("#popover_anchor").popover("show");

还有另一个按钮执行基本相同的 javascript,只是标题和内容函数返回不同的文本。

请注意,它们都在同一个元素上定义了弹出框,只是内容不同。

问题是,一旦单击任一按钮并执行 js,从另一个按钮后续单击都不会更改弹出框内容。那么一旦弹出框被初始化,我该如何更新/更改内容?

4

3 回答 3

17

title属性的目的是接受function提供此功能的类型值。

例如:如果您将标题设置为:

 title: function() { return randomTxt(); }

你有,

function randomTxt()
{
    arr = ['blah blah', 'meh', 'another one'];
    return arr[Math.floor(Math.random() * 4)];
}

您将不断为您的弹出框获得不同的标题。您可以更改randomText动态获取标题的逻辑。

于 2011-10-10T12:59:38.537 回答
6

您可以通过直接访问 popover 实例数据来做到这一点,如下所述:
https ://github.com/twbs/bootstrap/issues/813

此示例取自链接页面:

var myPopover = $('#element').data('popover')
myPopover.options.someOption = 'foo'
于 2012-08-03T09:57:30.797 回答
0

这是我在那里说的解决方案:

引导弹出框内容不能动态更改

var popover = $('#exemple').data('bs.popover');
popover.options.content = "YOUR NEW TEXT";

popover 是一个对象,如果您想了解更多有关它的信息,请在定义它之后尝试执行 console.log(popover) 以查看之后如何使用它!

于 2015-12-30T20:12:24.403 回答