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>
空の文字列を割り当てることにより、htmlを空に設定するだけです。
success:function(data)
{
$('#picoutput').html("");
}
これが私が取るトラブルシューティングのステップです:
$('#picoutput').html("");
を$('#picoutput').empty();
に置き換えます{//assetsPost()};
をコメントアウトします。コンテンツが適切に削除されていることを確認しますfunction assetsPost() { alert("Assets Post"); $.ajax({ }); }
この関数が1回だけ呼び出されていることを確認します。
alert(html) $('#picoutput').html( html );
Cfc呼び出しから返されるhtmlに、考えている内容が含まれていることを確認します。