等待ajax呼叫完成

时间:2013-01-10 15:22:36

标签: jquery

我正在使用jquery的sortable来求助一个列表。这些项目已编号,因此我希望能够在度假村之后指出新的数字。最初,我在进行排序后重新加载了页面。但是,我只是“发现”了ajax并发现它可能是一个更清洁的解决方案。我的代码几乎可以工作,除了一个问题。在排序之前首次加载页面时,会隐藏一堆span标记;然而,在我做了ajax之后,它们变得不被遮挡,我希望它们保持隐藏状态。我试过了:

 $.ajax({
                url: "/main_scripts/sort_chapters_and_sections.php",
                type: "POST",
                data: newOrder,
                success: function(thing_reordered){                                            $(".inline_link_list").html(thing_reordered);

$("span").each(function(){
    if ($(this).attr('class').match(/\bspan_hidden/)){
         $(this).hide();
    }
});
}
});

但是,在通话结束后,我的span_hidden标签将被取消隐藏。我的猜测是ajax调用还没有完成,所以我的“span_hidden”标签还没有在浏览器中,随后,还没有什么可隐藏的。如果我能理解如何确保完成ajax调用,我可以测试这个理论。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

if语句似乎错了。 此外,您不需要使用each()进行这样简单的搜索。

试试:

$('.span_hidden').hide();