Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript从imgur中提取随机图像_Javascript_Jquery_Random - Fatal编程技术网

使用Javascript从imgur中提取随机图像

使用Javascript从imgur中提取随机图像,javascript,jquery,random,Javascript,Jquery,Random,我在其他StackOverflow答案的帮助下创建了一个函数——当单击按钮时,它会使用一个5个字母的字符串从imgur生成一个随机图像,并将其添加到url中。这是我的密码: 这个“avoidBrokenImages”函数似乎不起作用,因为我仍然经常得到“删除”的图像 有什么建议吗?我觉得这是我很容易忽略的东西。您正在尝试在加载图像之前读取图像宽度。你应该改变 $('.stuff img').attr('src', source); var newimagewidth = $('.stuff im

我在其他StackOverflow答案的帮助下创建了一个函数——当单击按钮时,它会使用一个5个字母的字符串从imgur生成一个随机图像,并将其添加到url中。这是我的密码:

这个“avoidBrokenImages”函数似乎不起作用,因为我仍然经常得到“删除”的图像


有什么建议吗?我觉得这是我很容易忽略的东西。

您正在尝试在加载图像之前读取图像宽度。你应该改变

$('.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);