我已经使用了各种其他Stack Overflow问题的例子,但由于某种原因,这对我不起作用。我创建了一个函数来获取缩略图,并返回实际图像路径或默认(无缩略图)图像的路径。
使用JQuery方法以及JavaScript Image类,我得到404错误关于丢失的图像在控制台和找到的图像不错误,但不显示。有人能指出我做错了什么吗?
在getThumbnail()函数中,“image_url”在写入控制台时显示正确。当我在调用函数中并记录返回值时,它只是显示为“undefined”。
JQuery:
function getThumbnail(name)
{
var image_url = "images/" + name + ".jpg";
$.get(image_url)
.done(function()
{
return image_url;
})
.fail(function()
{
return "images/default.jpg";
})
}
字符串
JavaScript:
function getThumbnail(name)
{
var image = new Image();
image.src = image_url;
image.onload = function()
{
return image;
}
image.onerror = function()
{
return "images/default.jpg";
}
}
型
调用函数:
$.each( cycle, function( key, value )
{
var mapIndex = key;
var mapValue = value;
var brick = "<div class='brick small'><a class='delete' href='#'>×</a><img src='" + getThumbnail(value) + "' /><h2><span>" + value + "</span></h2></div>";
$( ".gridly" ).append( brick );
});
型
4条答案
按热度按时间46qrfjad1#
它不工作的问题是getThumbnail()方法不会像你想要的那样工作。
onload是一个JavaScript调用,在这种情况下,getThumbnail(value)将始终返回未定义的结果;
为了实现你想要的,你可以做这样的事情:
字符串
rbpvctlc2#
这不工作,因为
return
在onerror
和onload
函数中,并且因为请求是codec,所以函数不会等待直到reuest完成。你可以使用callback来实现。
字符串
dtcbnfnu3#
字符串
cbeh67ev4#
使用标准的xmlhttprequest,简单
字符串
或者简单的方法
型