我有一个页面index.php,它使用模态上传文件。上传后我使用以下内容更新我的数据库并将新图像加载到列表中。
$('#sortableImages').load('../includes/sortImages.php?edit=' + edit);
执行:
<script type="text/javascript">
$(document).ready(function(){
$(function() {
$("#sortableImages ul").sortable({
opacity: 0.6, cursor: 'move', update: function() {
var order = $(this).sortable("serialize") + '&action=updateRecordsListings';
$.post("../albumUploader/queries/sort.php", order);
}
});
});
});
</script>
echo "<ul class='revisionList'>";
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$sortImageName = $row['OrgImageName'];
$sortPath = "../data/gallery/" . $getGalleryID . "/images/album/" . $sortImageName;
echo "<li class='sortPhotos' id='recordsArray_{$row['id']}' >";
echo '<img src="'. $sortPath .'"/>';
echo "</li>";
}
echo "</ul>";
图像填充在索引页面上的div #sortableImages中。但是,似乎我从最初在index.php中加载的js文件中丢失了sortable()的方法,或者在ajax请求之后它没有读取js。我在这里缺少什么?
万分感谢。
答案 0 :(得分:0)
使用ajax从远程页面加载脚本时,重要的是要意识到已加载的页面中已发生就绪事件。
这意味着$(function(){})
中包含的代码会在收到后立即触发。如果该代码在它引用的html之前,它将找不到html,因为它还不存在。
如果你在它引用的html下面移动相同的代码,它会在html存在后触发,因此会找到它。
编辑:我的回答是假设OP中“执行:”之后显示的所有代码都包含在远程页面中
答案 1 :(得分:0)
您没有sort.php结果的处理程序。调用它只会将数据加载到缓存中。
您需要一个完整的处理函数来刷新数据,更不用说将其添加到dom中。你应该澄清你的问题,并明确指出这些是两个不同的页面。
$ .post(“../ albumUploader / queries / sort.php”,order).complete = func ...