Ten sam problem, rozwiązuję go za pomocą tej sztuczki, kod jest szczegółowy i jest tylko przykładowy, zoptymalizuj go!
// functions container
var doc =
{
doPopover : function(item_id, title, content)
{
// get jq item
var item = $('#' + item_id);
// the trick to "refresh content" in every call
item.attr('data-content', content);
// popover
item.popover(
{
title : title,
trigger : 'manual'
}).popover('show');
},
popoverFirstCall : function()
{
this.doPopover('myDiv', 'Title', 'MyContent1');
},
popoverSecondCall : function()
{
var content = 'xxx'; // get the content in Ajax
this.doPopover('myDiv', 'Title', content);
}
}
// call funcs in your views
$(document).ready(function()
{
// first popover with first content
doc.popoverFirstCall();
// this event wich call the ajax content and refresh popover.
$('#button').on('click', $.proxy(doc, 'popoverSecondCall'));
});
Przypuszczam, że sztuczka jest taka sama, aby odświeżyć tytuł również.
Jeśli masz lepsze rozwiązanie, powiedz mi!
EDIT:
kontynuowałem dochodzenie,
widzimy na kodzie wtyczki:
getContent: function() {
var content
, $e = this.$element
, o = this.options
content = $e.attr('data-content')
|| (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
return content
}
tak, zawartość zostanie podjęta na węźle "danych zawartości" lub w opcji podanych w pierwsze wywołanie (instanciation) popover.
Ale, faktycznie, jest probleme, opcje są buforowane i nie odświeżać na każde wezwanie, więc trzeba użyć wa:
$('item_id').attr('data-content', 'some content'); // and warning, it is different than
$('item_id').data('content', 'some content');
I Bootstrap się w ciekawy sposób.
samo za tytuł:
getTitle: function() {
var title
, $e = this.$element
, o = this.options
title = $e.attr('data-original-title')
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
return title
}
Więc funkcja doPopover mogą być: fine
doPopover : function(item_id, title, content)
{
// get jq item
var item = $('#' + item_id);
// the trick to "refresh content" in every call
item.attr('data-content', content); // do not use data() way.
item.attr('data-original-title', title);
// popover (trace first call if you want)
item.popover(
{
trigger : 'manual'
});
item.popover('show);
}
praca dla mnie.
item.attr ('zawartość danych', zawartość); Prace! Dzięki! Używanie Bootstrap v2.0.4 – Dean