要改善初始页面加载,我创建的页面上的大部分内容仅在需要时加载。为此,我通过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);
});
}