2011-10-05 37 views
12

我使用Twitter的Bootstrap js的popover功能。我有一個按鈕,點擊後,執行此javascript:使用Twitter的Bootstrap時,如何更改popover的內容?

$("#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,則從另一個按鈕開始的後續點擊都不會更改彈出式內容。所以一旦彈出窗口被初始化,我如何更新/更改內容?

回答

16

title屬性的用途是接受提供此功能的function類型的值。

例如:如果你設置你的標題:

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

,你有,

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

您將繼續獲得你的酥料餅的一個不同的標題。您可以改變randomText的邏輯以動態獲取標題。

+1

因此,我不應該重新初始化彈出窗口,而應該爲標題/內容屬性分配一個不同的函數? – brentmc79

0

這裏是解決方案,我說的對不對有:

Bootstrap popover content cannot changed dynamically

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

彈出窗口是一個對象,如果你想知道更多關於它的信息,請在定義它之後嘗試使用console.log(彈出窗口)以查看如何使用它!

相關問題