画像ディレクトリに利用可能なファイルがあるかどうかを確認するために ajax を使用しています。存在する場合は、それを HTML コードに追加し、ブール値を true に変更して、見つかったことをユーザーに知らせます。ファイル名が見つからない場合は、2 つの部分からなる画像かどうかを確認します (画像名の末尾の数字 1 と 2 を連結して 2 つの画像を生成します)。画像が見つかったことを示すブール値も true に変更されます。ただし、1 つまたは 2 つの部分からなる画像がない場合、コードは ajax からエラーを出して、ブール値を false のままにし、ユーザーに画像がないことを伝えます。
私のロジックは、画像がないときにユーザーに通知することを除いて、すべてうまく機能しています。ajax 成功関数では、(成功またはエラーに関係なく) 画像は常に追加されますが、ブール値は成功後に変更されることはありません。これが私が実行しているコードです。
boolean = false //declared globally
function tableSelect(location){
$("#popupPhoto").text("");
var part = $("#table"+location).text().split(" ");
//part[0] always empty
for(var i=1;i<part.length;i++){
//change default value to false
boolean = false;
/* original code
imageExists(part[i]);
//when no file... is found, boolean stays false, causing this if statement to function
if(boolean == false){
alert("No Information for "+imagename+" of "+part[i]);
//displayes image that says "No Information Available"
$("#popupPhoto").append($("<img>", {src: 'images/imagedir/nia.png', "class": 'popphoto', alt: 'NIA' }));
}
*/
//new code
imageExists(part[i]).fail(function () {
alert("No Information for "+imagename+" of "+part[i]);
$("#popupPhoto").append($("<img>", {src: 'images/imagedir/nia.png', "class": 'popphoto', alt: 'NIA' }));
})
}//Displays images in popup
$("#popupPhoto").addClass("ui-popup-active");}
画像をチェックする関数は次のとおりです
function imageExists(part){
var url = "images/imagedir/"+part+".png";
$.ajax({
url:url,
type:'HEAD',
error: function()
{
$("#popupPhoto").append($("<img>", {src: 'images/imagedir/'+part+'1.png', "class": 'popphoto', alt: part.concat("1") }));
$("#popupPhoto").append($("<img>", {src: 'images/imagedir/'+part+'2.png', "class": 'popphoto', alt: part.concat("2") }));
//boolean = true;
//boolean changes here
},success: function()
{//boolean will not change here
//boolean = true;
$("#popupPhoto").append($("<img>", {src: 'images/imagedir/'+part+'.png', "class": 'popphoto', alt: part }));
}
});
}
これはおそらく、この機能の詳細とその仕組みを理解していないことを理解していますが、誰かがこの問題を回避したり、より良い方法を提案したりできる場合は、それが本質的に私が探しているものです. 前もって感謝します。