要改善初始頁面加載,我創建的頁面上的大部分內容僅在需要時加載。爲此,我通過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);
});
}