首页 > 解决方案 > 如何等待特定 jQuery 选择中的所有图像加载?

问题描述

当我使用以下代码时,它会为选择中的每个项目运行一次:

$('.someElement img').load( function() {
    // Do something
});

所以基本上,如果 .someElement 包含 5 个图像,它会触发 5 个不同的时间。如何运行一个事件,使其仅在加载选择中的所有图像后触发一次?

具体来说,我不想等待页面上的所有图像。这将专门用于在页面呈现很久之后添加到 DOM 的内容,并且该内容包含 IMG 标记,我想等待这些特定图像加载。选择器将针对该动态内容。

标签: javascriptjquery

解决方案


let loadCount = 0;

const images = $('.someElement img');

images.load( function() {
  loadCount++;

  if (loadCount >= images.length) {
    // Do something
  }
});

推荐阅读