【发布时间】:2013-10-21 18:32:29
【问题描述】:
我有一个页面视图,它进行 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() 方法。
处理这个问题的正确方法是什么?
谢谢
【问题讨论】:
标签: javascript php jquery yii renderpartial