在jQuery ajax调用之后DOM何时准备就绪?

时间:2012-03-22 22:11:12

标签: jquery css dom

我有一个ASP.NET MVC3项目进行ajax调用,返回我可以成功注入页面的HTML。但是在注入代码后隐藏CSS类时遇到问题。我怀疑DOM还没准备好。

我知道文档就绪函数 $(function(){...} 仅在最初加载页面时被调用 - 而且我不想再次调用它 - 所以我想知道是否有另一种方法可以在ajax调用之后使用,以确定DOM何时就绪。

这是ajax代码:

    $.ajax(
            {
                url: '/seoreports/seoupdate',
                type: "post",
                dataType: "html",
                data: JSON.stringify(dt),
                contentType: "application/json; charset=utf-8",
                success: function (result) {
                    $('#seolist').html(result);
                    if (ptshow == false) { $('.seo-pt').hide(); }
                }
            });

这个想法是,如果 ptshow 变量为false,它会在注入HTML后隐藏所有带有 seo-pt 类的div。

我确实尝试过,仅仅是为了测试,在成功函数中放置 alert('hello world'); ,但这没有用,所以可能有一些我不了解的事情成功的功能。

2 个答案:

答案 0 :(得分:0)

成功功能是您的代码的正确位置。如果没有更多代码可供查看,很难说出您的通话失败的原因。此外,您还应该为错误函数添加处理程序,这可能会告诉您警报未被命中的原因。

答案 1 :(得分:0)

$.ajax({
url: '/seoreports/seoupdate',
type: "POST",
async:false,
...
...

试试这个....一切都会等待电话的完成,但在你的情况下可能没问题,你可以更好地控制下一步发生的事情