12

TwitterのBootstrapjsのポップオーバー機能を使用しています。クリックすると、次の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

ここで説明されているように、ポップオーバーインスタンスデータに直接アクセスすることでそれを行うことができます:
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 に答える