【问题标题】:Jquery: Appending data to a div AFTER ajax load operationJquery:在 ajax 加载操作后将数据附加到 div
【发布时间】:2010-12-28 06:49:40
【问题描述】:

我的设置很像这样:

$('.container a').click(function(event) {
    event.preventDefault();
    $('#contents').remove();
    $(this).parent().append("<div id=\"contents\"></div>");
    $('#contents').html('<img src="/images/loading.gif" />')
                  .load("stuff.html")
                  .append("<div id=\"closebutton\"></div>");
});

但是,“附加”部分似乎在加载完成之前运行,因此关闭按钮 div 被 stuff.html 的内容覆盖。如何让它等到 ajax 操作完成后再执行最终追加?

谢谢:)
马拉

【问题讨论】:

    标签: javascript jquery ajax append


    【解决方案1】:

    使用回调函数【ajax请求完成时调用的函数(不一定成功)】进行加载,然后追加内容。

    $('#contents').html('<img src="/images/loading.gif" />')
                      .load("stuff.html",function() { AppendContent(); } )
    
    function AppendContent()
    {
        // do your append function here
    }
    

    【讨论】:

      【解决方案2】:

      append 放入回调函数中会起作用。

      $('.container a').click(function(event) {
          event.preventDefault();
          $('#contents').remove();
          $(this).parent().append("<div id=\"contents\"></div>");
          $('#contents').html('<img src="/images/loading.gif" />')
                     .load('stuff.html',{},function(){
                        $(this).append('<div id=\"closebutton\"></div>");
                     });
      });
      

      【讨论】:

        猜你喜欢
        • 2013-06-03
        • 2015-07-29
        • 2013-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多