이미지가 존재하지 않는 경우 다른 이미지를 어떻게 사용합니까? ( '#id'). attr ( "src"사용

Aug 18 2020

저는 제가 만들지 않은 일부 코드의 버그를 수정하려는 C 프로그래머입니다. 표의 행을 클릭하면 id 'square'로 이미지를 설정합니다.

$('#square').attr("src","image/"+row.id+"_2_1.jpg");

그러나 일부 이미지의 이름은 _3_1.jpg (내가 제어 할 수 없음)이므로 _2_ 이미지가 있는지 확인하고없는 경우 _3_ 변형을로드하고 싶습니다.

"onerror"를 사용하면 작동하지 않는 것 같고 IF 문을 삽입하면 전체 테이블이로드되지 않습니다.

이것은 전체 기능입니다.

$('#table').on('click-row.bs.table', function (e, row, $element) { if(config["homing_tool"] == "1"){ $('#detail').show();
            $('#detail1').hide(); $('#detail2').hide();
            $('.homing').hide(); }else{ $('#detail').show();
            $('#detail1').show(); $('#detail2').show();

            $('#iris').attr("src","image/"+row.id+"_0_1.jpg"); $('#square').attr("src","image/"+row.id+"_2_1.jpg");
    };
    var x;
    for (x in row) {
        if(x == "type"){
            $('#'+x).html(spec[row[x]]["name"]); }else{ $('#'+x).html(row[x]);
        }
    }
});

편집 : 제안 해 주셔서 감사합니다! 모든 데이터는 로컬이므로 내가 아는 한 서버에 연결하고 HTTP 요청을 사용할 필요가 없습니다. 나는 내일 다른 제안을 시도 할 것입니다. 원격으로 액세스해야하는 PC는 나보다 6 시간 빠르며 하루 동안 종료됩니다.

답변

Rik Aug 19 2020 at 14:55

일부 디버깅 및 시행 착오를 통해 필요한 이미지를로드 하기 전에 이미지가 있는지 확인 을 적용 할 수있었습니다 .

모두 감사합니다!

후손을 위해 다음을 사용했습니다.

function getSquareURL(rowid)
{
    var image = new Image();
    
    image.onload = function()
    {
        $('#square').attr("src","image/"+rowid+"_2_1.jpg"); return true; } image.onerror = function() { $('#square').attr("src","image/"+rowid+"_3_1.jpg");
        return false;
    }

    image.src = "image/"+rowid+"_2_1.jpg";
}