关于onload和计时器的问题
if (answer_img.length === 1) {
let img = new Image()
img.src = answer_img[0].src
answer_height -= this.subject_row_height
img.onload = function () {
img_number--
img_height = img.height
}
}
let img_onload = setInterval(function (img_number){
if (img_number == 0){
clearInterval(img_onload)
answer_height += img_heihgt
}
},typeset.recursion_value)
上面的代码在一个for循环里面,下面的代码再for循环外面,我通过for循环遍历每一个p标签,在p标签里面有可能会存在图片,但是图片本身并没有加载到页面上面 ,因此我想通过onload来获取图片的高度,但是当方法执行完了之后,图片的高没有添加到总高度里面,于是我想到的是在for循环下面添加一个计时器,当获取到高之后在执行后面的程序。
但是现在的问题是我的断点打在计时器后面,这时候再看img_height
它的输出结果为undefined,整个页面加载完成后图片的高度依旧没有增加到总高度里面,想问问这个该怎么解决呢
onload里面console.log(img_height)
的话到是可以出结果
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为
img_number
是直接从匿名函数传入的,而匿名函数是被定时器调用的,不会传img_number
,应该去掉img_number
,像下面这样如果可以使用 Promise 的话,也可以按照如下方式处理