2013-01-22 85 views
0

我使用了一個popover,我需要動態改變它的內容,但只有一部分。更具體地說,我使用bootstrapx-clickover,所以我不能簡單地更新數據內容,因爲我的按鈕關閉彈出窗口將被刪除。我可以更新Twitter Bootstrap數據內容的一部分嗎?

我當前的代碼如下所示:

<span class="label label-importan" rel="clickover" data-content="NEW TEXT HERE<button class='btn' data-toggle='button' data-dismiss='clickover'>Close</button>" data-original-title="Title">data</span> 

如果我只要致電:

.... 
var el = $(this); 
el.attr('data-content', "New Data"); 
.... 

這不幸的是刪除按鈕的代碼。有沒有辦法只更新數據內容的文本,而不是HTML按鈕?

+0

我遇到了同樣的問題。每當我想要改變popover內容時,我只需重新加載所有html內容。 – Rooster

+0

我試過,但我的按鈕觸發關閉停止工作,當我這樣做... – user1216398

+0

您可能需要編寫一個自定義事件處理程序關閉它的按鈕,並將其放入一個.on()方法 – Rooster

回答

1

假設data-content屬性的內容保持不變,爲你的榜樣,IE總是會有一些文本後跟一個<button>元素,你可以使用類似這樣的代碼 -

var attributeContent = el.data('content'); 
var withoutText = txt.replace(/.*<button/,'<button'); 
el.data('content','SOME NEW TEXT HERE'+withoutText); 

這是一種的低科技解決方案,它取決於價值的一致性,但這可能只適用於您的具體情況。

因爲每次都要添加一個新元素(<button>元素),所以您可能需要在父元素上使用delegate()函數,以允許您將事件處理程序附加到動態生成的元素。

相關問題