我有一个页面视图,它进行 ajax 调用并使用 renderPartial 更新页面的内容。
所以 page.php -> _pagePartial.php(ajax 更新)
在 page.php 中,我想包含一次 javascript 文件,然后在 ajax 渲染发生后应用 DOM 修改。在每次 AJAX 刷新时加载这个 JS 文件是没有意义的。
例如在 page.php
$baseUrl = Yii::app()->baseUrl;
$basePath = Yii::app()->basePath;
$cs = Yii::app()->getClientScript();
$cs->registerScriptFile($baseUrl . '/js/jquery.ui.js'); // load one time!
然后在 pagePartial.php
// every ajax partial load
$('#sortable-list-left').sortable({
connectWith:'.productEntryCol',
placeholder: 'ui-state-highlight',
update: function(event, ui) {
var sortOrderLeft = getSortOrder('sortable-list-left');
var sortOrderRight = getSortOrder('sortable-list-right');
var projectId = '" . $project_id . "';
$.ajax({
data: { left: sortOrderLeft, right : sortOrderRight, id : projectId},
url: '/project/ajaxUpdateOrder',
type: 'POST',
success: function(response){
// process JSON response
var obj = jQuery.parseJSON(response);
}
});
}
});
问题是在通过 AJAX 加载 _pagePartial 之后,它不能使用 .sortable() 方法。
处理这个问题的正确方法是什么?
谢谢