8

我有一个 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>
4

2 回答 2

3

只需通过分配空字符串将 html 设置为空。

success:function(data) 
{
    $('#picoutput').html("");
}
于 2013-03-16T13:20:57.120 回答
0

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

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

验证此函数仅被调用一次。

  • 在添加 html 的底部放置一个警报(断点)
alert(html)
$('#picoutput').html( html );

验证从 cfc 调用返回的 html 是否包含您认为的内容。

于 2013-03-16T13:49:48.027 回答