jQuery Ajax请求 - 丢失方法

时间:2012-06-28 00:31:43

标签: ajax jquery-ui jquery

我有一个页面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。我在这里缺少什么?

万分感谢。

2 个答案:

答案 0 :(得分:0)

使用ajax从远程页面加载脚本时,重要的是要意识到已加载的页面中已发生就绪事件。

这意味着$(function(){})中包含的代码会在收到后立即触发。如果该代码在它引用的html之前,它将找不到html,因为它还不存在。

如果你在它引用的html下面移动相同的代码,它会在html存在后触发,因此会找到它。

编辑:我的回答是假设OP中“执行:”之后显示的所有代码都包含在远程页面中

答案 1 :(得分:0)

您没有sort.php结果的处理程序。调用它只会将数据加载到缓存中。

您需要一个完整的处理函数来刷新数据,更不用说将其添加到dom中。你应该澄清你的问题,并明确指出这些是两个不同的页面。

$ .post(“../ albumUploader / queries / sort.php”,order).complete = func ...