使用Javascript从imgur中提取随机图像
我在其他StackOverflow答案的帮助下创建了一个函数——当单击按钮时,它会使用一个5个字母的字符串从imgur生成一个随机图像,并将其添加到url中。这是我的密码: 这个“avoidBrokenImages”函数似乎不起作用,因为我仍然经常得到“删除”的图像使用Javascript从imgur中提取随机图像,javascript,jquery,random,Javascript,Jquery,Random,我在其他StackOverflow答案的帮助下创建了一个函数——当单击按钮时,它会使用一个5个字母的字符串从imgur生成一个随机图像,并将其添加到url中。这是我的密码: 这个“avoidBrokenImages”函数似乎不起作用,因为我仍然经常得到“删除”的图像 有什么建议吗?我觉得这是我很容易忽略的东西。您正在尝试在加载图像之前读取图像宽度。你应该改变 $('.stuff img').attr('src', source); var newimagewidth = $('.stuff im
有什么建议吗?我觉得这是我很容易忽略的东西。您正在尝试在加载图像之前读取图像宽度。你应该改变
$('.stuff img').attr('src', source);
var newimagewidth = $('.stuff img').width;
avoidBrokenImages();
到
修改原件:
稍微清理代码:函数返回false,可以,但是由于该函数返回false,您希望发生什么?缺少一些字符:
var newimagewidth=$('.stuff img').width()
。更改它,您就不必在条件语句中重复它。对于其余部分,我将使用给出的答案。为此使用load()
而不使用on()
已经有一段时间被弃用了。最好将其设置为$('.stuff img').attr('src',source.).on('load',avoidBrokenImages)代码>。谢谢你的回答。Shikkediel,谢谢,使用on(),它确实工作得更好,它似乎更快地绕过161px图像。你们能想出一种不显示161px图像的方法吗,也许在更新源代码之前检查宽度?是的,如果使用JavaScript的Image
对象而不是使用DOM对象。您还可以先将其加载到一个不可见的DOM对象中,然后在找到匹配项后交换它。更新为使用Image
对象。请注意,如果要在找到图像之前不更新文本,请将update语句移动到替换图像的else
块。:)@谢天谢地:谢谢你的提示。我做前端工作已经有一段时间了。答案已更新为对原始代码使用on()
。
function avoidBrokenImages(){
var newimagewidth = $('.stuff img').width;
if ($('.stuff img').width() == 161) {
randomString();
} else {
return false;
}
}
$('.stuff img').attr('src', source);
var newimagewidth = $('.stuff img').width;
avoidBrokenImages();
$('.stuff img').attr('src', source).on('load', avoidBrokenImages);