Javascript 如何更改为默认背景图像
我使用以下函数使用ajax响应创建动态元素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
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+')');
});