Для улучшения загрузки начальной страницы большая часть содержимого на странице, которую я создаю, загружается только при необходимости. Для этого я использую следующий код через вызов ajax.Виджеты Yii & Bootstrap не работают после второго Ajax
$this->renderPartial('_callhistory', array(
'modelCalls'=>$modelCalls,
'fid'=>$fid,
), false, true);
Это прекрасно работает, все виджеты работают. Это вызывает проблемы с дизайном основной темы, но это не главная проблема на данный момент.
Проблема, с которой я столкнулся, - это иногда необходимость повторного вызова ajax для обновления представления. Для этого я вызываю ту же самую функцию ajax с теми же параметрами, но при втором вызове все виджеты (а именно: TbSelect2 и CJuiDatePicker) перестают работать, вместо этого я получаю стандартный выбор и текстовое поле для даты. Это, в свою очередь, нарушает проверку на стороне клиента.
Прочее Q & Как упоминается .unbind()
, это путь? Если это так, я прав, говоря, что все элементы виджета должны отвязаться перед вызовом ajax?
Спасибо, я отправлю также свой Ajax, просто отметьте, что он обрабатывает все обновления, подобные этому.
function renderSectionView(fid, viewid, headerid, panelid, extraparams){
var panel = $('#'+panelid);
panel.html("<img src='images/ajax-loader-bar.gif' class='loadingbar' />");
var param = { 'fid':fid,
'viewid':viewid
};
var url = controller_url_builder('SubViewAjax', param);
var jqxhr = $.post(url, extraparams, function(data) {
panel.html(data);
})
.done(function() {
renderedlist.push(viewid+fid);
})
.fail(function() {
panel.html("<span class='error'>There has been an error, please refresh the page and try again</span>");
})
.always(function() {
scrollToAcc(headerid);
});
}