8

Coldfusion CFCメソッドからデータを要求し、データをdivに表示するajax呼び出しがあります。同じ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({
    });
}

この関数が 1 回だけ呼び出されていることを確認します。

  • ここに、html を追加した場所の下部にアラート (ブレークポイント) を配置します。
alert(html)
$('#picoutput').html( html );

cfc 呼び出しから返される html に、想定どおりの動作が含まれていることを確認します。

于 2013-03-16T13:49:48.027 に答える