通过AJAX和jQuery清除并重新加载div数据

时间:2013-03-16 13:18:24

标签: jquery ajax coldfusion

我有一个ajax调用,它从Coldfusion CFC方法请求数据并在div中显示数据。还有一个删除此数据的链接,该数据使用相同的CFC但要删除的方法不同。两种方法都可以独立工作。我似乎无法弄清楚的是如何在函数中封装调用并在删除成功后刷新div。这是代码:

ajax电话

    var caseid = <cfoutput>'#URL.ID#'</cfoutput>;
    var siteurl = <cfoutput>'#APPLICATION.url#'</cfoutput>;
    var html = "";

    function assetsPost() {
    $.ajax({
          cache: false,
          type:'GET',
          url:'cfc/cfc_Asset.cfc?method=qAsset&returnformat=json',
          dataType: "json",
          data: {
              assetgrp_id:  caseid,
            },
          success:function(data) {
            if(data) {   // DO SOMETHING 
            jQuery.each(data, function(i, val) {    
                 $('#picoutputannotation').html(data[i].annotation);
                 var asset_id   = data[i].value;
                 var img        = siteurl + 'assets/images/thumbs_check2/' + data[i].thumb;
                 var removeimg  = siteurl + 'assets/images/remove.png';
                 var annotation = data[i].annotation;
                     html += "<div class='block-pics'>";
                     html += "<img src='" + img + "'>";
                     html += "<div class='note'>";
                     html += annotation;
                     html += "</div>";
                     html += "<div class='block-pics-remove'>";
                     html += "<a class='delete-asset' id='" + asset_id + "'><img src='" + removeimg + "'></a>";
                     html += "</div>";
                     html += "<div class='bot'></div>";
                     html += "</div>";
            });
                 $('#picoutput').html( html );
            } else { // DO SOMETHING 
          }
        }
    });
}  
assetsPost();  

这是删除脚本:

   $(document).on("click", ".delete-asset", function() {
   var del_id = $(this).attr('id');
   $.ajax({
      type:'GET',
      url:'cfc/cfc_Asset.cfc?method=DeleteAsset&returnformat=json',
      dataType: "json",
      data: {
          delete_id:    del_id,
        },
      success:function(data) {
        if(data) {   // DO SOMETHING
            $('#picoutput').empty();
            {assetsPost()};
            $('#picoutput').fadeIn('fast');

        } else { // DO SOMETHING 
      }
    }
   });
 });

这里是html:

<div class="grid_6">
                <div id="picoutput"></div>
            </div>
    </div>

2 个答案:

答案 0 :(得分:3)

只需通过指定空字符串将html设置为空。

success:function(data) 
{
    $('#picoutput').html("");
}

答案 1 :(得分:0)

以下是我将采取的故障排除步骤:

  1. 在删除部分中,将$('#picoutput').html("");替换为 $('#picoutput').empty();
  2. 在您的删除脚本中注释掉{//assetsPost()};。验证 内容正在正确删除
  3. 恢复已注释掉的行。在这里发出警报(或断点 如果可以的话。)
  4. function assetsPost() {
        alert("Assets Post");
        $.ajax({
        });
    }
    

    验证此功能仅被调用一次。

    • 在此处放置一个警报(断点),位于您添加的位置的底部 HTML
    alert(html)
    $('#picoutput').html( html );
    

    验证从cfc调用返回的html是否包含您的想法。