Javascript 如何更改为默认背景图像

Javascript 如何更改为默认背景图像,javascript,jquery,Javascript,Jquery,我使用以下函数使用ajax响应创建动态元素 function itemGroupSelection(elem,majorGroupId,itemGroupId){ var itemGroup; var majorGroup; if(elem == undefined || elem == null || elem == ""){ var itemGroup = itemGroupId; var majorGroup = majorGro

我使用以下函数使用ajax响应创建动态元素

function itemGroupSelection(elem,majorGroupId,itemGroupId){

    var itemGroup;
    var majorGroup;

    if(elem == undefined || elem == null || elem == ""){
        var itemGroup = itemGroupId;
        var majorGroup = majorGroupId;
    }else if(majorGroupId == null && itemGroupId == null){
        var itemGroup = elem.attr("id");
        var majorGroup = elem.attr("majorgroup");
    }



    $('.breadcrumb a').removeClass('active');

    if(elem == ""){
        $('.breadcrumb a').first().addClass('active');
    }else{
        elem.addClass('active');
    }

    var selectedOutlet = $('#outlets select').children(":selected").attr("id");
    $('.item').show();
    $('.breadcrumb').show('1');
    var data = "majorGroupId=" + majorGroup + "&itemGroupId=" + itemGroup + "&outletCode=" + selectedOutlet;

    if(selectedOutlet == undefined){
        getSystemMessage('Please select an outlet.');
    }else{
        ajaxCall("/getItems","POST",data,function(result){
            var element = $('#model-item').find('.item').first();
            $('#item-list-section').empty();

            for(var i = 0; i < result.items.length; i++){
                var clone = element.clone();

                clone.attr("id", result.items[i].itemId);
                clone.find('.item-price').html("<h4>" + result.items[i].rate.toFixed(2) + "</h4>");
                if(result.items[i].itemName.length >= 20){
                    clone.find('.item-name').css('overflow','hidden');
                    clone.attr('title', result.items[i].itemName )
                }
                clone.find('.item-name').html("<h4>"+ result.items[i].itemName + "</h4>");
                clone.css('background-image','c:/zharaimages/' + result.items[i].itemId + '/image.jpg');

                clone.draggable({
                    revert : false,
                    zIndex: 1,
                    containment: "window",
                    opacity: 0.5,
                    cursor: "move",
                    helper: function() { return $(this).clone().appendTo('body').show(); }
                });
                $('#item-list-section').append(clone);
            }
        });
    }


}

如果定义的路径中没有图像,如何切换到默认图像。我使用的是jQuery 1.9。

您需要处理此图像的
onerror
事件,在找不到文件时会发生此事件:

$('#image').error(function(){
    $(this).off('error'); // otherwise, inexistence of the default image is a real pain
    $(this).attr('src', 'http://www.google.ca/images/srpr/logo4w.png');
});
看看这个工作原理


那么

在您的情况下,您可能会遇到以下情况:

var path='the path';

clone.css('background-image', 'url('+path+')');
$('<img src="'+path+'" />').error(function(){
    $(this).off('error');
    clone.css('background-image', 'url('+default_path+')');
});
var path='the path';
css('background-image','url('+path+'));
$('').error(函数(){
$(this.off('error');
css('background-image','url('+default_path+'));
});

希望这有帮助:-)

尝试使用img的onerror属性,如果src属性中给出的链接无法加载,将调用错误的ur函数,您可以在那里设置默认映像(w3schools.com/jsref/event\u img\u onerror.asp)

为什么使用本地磁盘上的文件?那怎么行?
var path='the path';

clone.css('background-image', 'url('+path+')');
$('<img src="'+path+'" />').error(function(){
    $(this).off('error');
    clone.css('background-image', 'url('+default_path+')');
});