javascript - 图片加载功能不工作

标签 javascript jquery image-loading

目标: 载入 .thumbnail div 中的图像后,红色边框应变为绿色

JSFIDDLE: https://jsfiddle.net/3k8xy2cf/

var container;
var img;

$("#products .thumbnail").each(function() {
  container = $(this);
  img = new Image();
  img.src = $(container).find('img').attr('src');
  img.onload = function() {
    $(container).addClass('loaded');
  }
});
.product {
  float: left;
  border: 5px solid red;
}
.product.loaded {
  border-color: green;
}
.product img {
  width: 25%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="products">
  <div class="product">
    <div class="thumbnail">
      <img src="https://placehold.it/600x600" alt="">
    </div>
  </div>
  <div class="product">
    <div class="thumbnail">
      <img src="https://placehold.it/800x800" alt="">
    </div>
  </div>
</div>

最佳答案

您的代码比需要的复杂得多。您不需要 each() 循环,您当然不需要从已经存在的元素创建新的 img 元素。

相反,您可以在 img 元素上使用 load() 事件处理程序,将类添加到父级 .thumbnail,例如这个:

$('#products .thumbnail img').on('load', function() {
  $(this).closest('.thumbnail').addClass('loaded');
});
.thumbnail {
  border: 2px solid #C00;
}

.thumbnail.loaded {
  border-color: #0C0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="products">
  <div class="product">
    <div class="thumbnail">
      <img src="https://placehold.it/125x125" alt="">
    </div>
  </div>
  <div class="product">
    <div class="thumbnail">
      <img src="https://placehold.it/150x150" alt="">
    </div>
  </div>
</div>

关于javascript - 图片加载功能不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50878056/

相关文章:

javascript - 在 ui-router 中正确加载 Controller 路径

javascript - 如何在 js/jQuery 中计算日期

android - Glide V4 加载 https 图片

iphone - UIWebView:一些图像未加载

Android Volley ImageLoader - BitmapLruCache 参数?

javascript - Node.js Socket.IO "Uncaught TypeError: Object #<Server> has no method ' 关闭'"

javascript - 数组重排序

javascript - 在不重新加载页面的情况下更新 URL 哈希

javascript - Firebase 和 Backbone : Trouble using uid as a key

javascript - 单击动态创建的链接时删除 div