有没有办法使用 JS 确定何时加载 4 个图像?

2024-03-21

我一页上有 4 张图片。我想在所有 4 个图像加载完毕后触发 JS 事件。我当然无法确定图像将以哪个顺序加载,因此我无法在最后一个图像上触发事件。一个想法是有一个计数器,但我想不出检查该计数器何时等于 4 的最佳方法,因为我不喜欢 setTimeout() 每 200 毫秒检查一次的想法。

还有其他想法吗?

我在网站上使用 jQuery,所以我想这可能会有所帮助。

这是图像 HTML 代码:

<img src="/images/hp_image-1.jpg" width="553" height="180" id="featureImg1" />
<img src="/images/hp_image-2.jpg" width="553" height="180" id="featureImg2" />
<img src="/images/hp_image-3.jpg" width="553" height="180" id="featureImg3" />
<img src="/images/hp_image-4.jpg" width="553" height="180" id="featureImg4" />

至于咸的例子 https://stackoverflow.com/a/414980/44084,最好使用闭包来避免全局变量,如下所示:

$("img").load(function() {    
    var count = 0, numImages = $("img").size();

    return function () {
        if (++count === numImages) { 
            //All images have loaded    
        }
    };
}());

[Edit]

As per 杰罗恩的评论 https://stackoverflow.com/users/42139/jeroen,我替换了硬编码值 4 (count === 4)与 jQuerysize功能,以允许功能内具有更大的灵活性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法使用 JS 确定何时加载 4 个图像? 的相关文章

  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • EmberJS:对象作为查询参数来刷新模型

    我遵循了查询参数指南 http guides emberjs com v1 11 0 routing query params http guides emberjs com v1 11 0 routing query params 而且效
  • Razor mvc3 + jquery + Url 操作 + 部分视图

    我有一个关于 jQuery Razor 的问题 我想使用 razor 和 Url Action 构建一个 javascript 变量 并且 html 属性将是输入的值 像这样 var d1 d1 val var d2 d2 val var
  • 正则表达式中连字符的这种用法有效吗?

    NB I only想知道它是否是正则表达式定义中未转义连字符的有效应用 它是not关于匹配电子邮件 连字符或反斜杠的含义 量词或其他任何内容的问题 另外 请注意 链接的答案并没有真正讨论转义 未转义连字符之间的有效性问题 通常我会像这样声明
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • Bing 图像搜索 API 按图像大小过滤

    我正在使用 jsonp 和 jquery ajax 来使用 Bing 图像搜索 API 我能够检索搜索结果 但我无法找到按图像大小过滤结果的方法 我在文档中找不到任何与此相关的内容 有谁知道是否有一种方法可以按图像大小过滤结果或对此进行任何
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • .removeClass 从所有元素(相对于单个定义的元素)

    我将如何使用 removeClass 删除所有匹配的类 而不是单独调用每个元素 所以代替这个 input removeClass CO form alert select removeClass CO form alert input se
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 如何从 html 页面 [javascript] 调用 Web 服务方法而不刷新页面

    我有一个webservice这将返回一个值 我的要求是 我需要调用它webservice从一个index html页面 该页面有一个 html 提交按钮 在该按钮上单击我正在呼叫JavaScript 从那里我想调用网络方法 我怎样才能做到这
  • 为什么 call 比 apply 快那么多?

    我想知道是否有人知道why call比apply 在 Chrome 中 速度大约快 4 倍 在 Firefox 中快 30 倍 我什至可以制作自定义原型 apply2 在大多数情况下 运行速度是apply 这个想法取自角度 Function
  • 在反应中访问回调内的 event.target

    我有以下课程片段 constructor props super props this timeout null search e gt clearTimeout this timeout this timeout setTimeout f
  • 了解 Document.createElement()

    我在用着GWT及其底层DOM能力 我基本上想要实现的是 Have a div包含一些文本的元素 其中一些文本将被包围span元素 span 元素可相互拖动并提供上下文菜单 New span元素可以由最终用户动态创建 它可能是这样的 在应用程
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 从 jQuery UI 对话框调用 Bootstrap 模式:超出最大调用堆栈大小

    我有一个有点奇怪的问题 我正在调用 Bootstrap Modal 同时打开了 jQuery UI 对话框并且正在获取RangeError Maximum call stack size exceeded 在控制台中 奇怪的是 只有当我在打

随机推荐

  • 如何在Python中将不同类型的元素连接到列表?

    list1 1 3 2323 pause list2 2 4 5 print join list1 print join list2 对于上面的代码 元素list2可以毫无问题地连接 但加入list1报告错误 TypeError seque
  • 操作错误:(2001,“无法创建 UNIX 套接字 (24)”)

    我正在使用 django 1 2 和 python 2 6 并且我正在使用 mysql 服务器 经过一段时间的工作 选择和更新记录后 我收到此错误 Exception in thread Thread 269 Traceback most
  • 0 到 n 范围内的随机数

    给定一个产生真正随机 32 位数字的函数 R 我想要一个返回 0 到 n 范围内的随机整数的函数 其中 n 是任意的 小于 2 32 该函数必须以相同的概率生成 0 到 n 的所有值 我想要一个在恒定时间内执行的函数 没有 if 语句或循环
  • 如何在QWebEngineView中保存动态生成的网页?

    我正在将网页加载到QWebEngineView 用户创建不同类型的表格 报告 然后需要将这些表格作为网页保存到本地计算机 这是我尝试过的 这里我使用一个QWebEnginePage save 方法 但没有任何反应 connect saveB
  • 在Python中的远程机器上执行命令

    我正在 Ubuntu 上用 python 编写一个程序来执行命令ls l在 RaspberryPi 上 连接网络 有人可以指导我该怎么做吗 当然 有多种方法可以做到 假设您有一个 Raspberry Piraspberry lan主机和您的
  • 如何将字符串传递给批量插入而不是文件?

    我曾经使用批量插入命令来转换 Csv 文件 int 表 最近 我将 CSV 文件保存为 SQL Server 中的 VarBinary 值 现在我可以通过使用 CAST 和 CONVERT 函数将其类型转换为 Varchar 来从 Varb
  • 发布 apk 后的真实 Android 设备上的 Google 地图仍然是空白

    我想生成并使用 google API 密钥 启用谷歌地图 v2 API 使用谷歌地图创建了包含一项活动的项目 工作室中的默认向导 在谷歌上创建了用于调试项目的密钥 并已分配SHA1 应用程序包谷歌上项目密钥的应用 API 密钥已插入 goo
  • 如何在mapbox ios sdk中向MGLFillStyleLayer添加线宽属性?

    我必须使用 MGLPolygonFeature 在 MGLFillStyleLayer 中添加多边形特征 但问题是我无法更改轮廓宽度 线宽为MGLFillStyleLayer目前无法更改 建议的解决方法是使用相同的源来创建MGLLineSt
  • 将 grails 从 2.1.1 升级到 2.4.3

    我正在将 grails 应用程序从 2 1 1 升级到 2 4 3 解决升级过程中的错误是一个永无止境的故事 现在我被困在这一点上 有什么想法如何解决这个问题吗 Thanks C workspace grails apps monitori
  • 如何在 Jooq 中比较日期

    In the mysqldb 我有一个字段名称date type date 该字段的值如下2019 11 05 如何在jooq中查询上面提到的日期 我尝试跟随 java util Date date SimpleDateFormat yyy
  • 如何按parentId JS对对象数组进行排序

    我怎样才能对这个数组进行排序 我正在尝试对来自 a 的对象数组进行分组parentId数组的每个元素带来的级别总是不确定的 我期望的结果就是输出中的结果 Input id 123 name ABC parentID id 645 name
  • 在 Pandas 中创建 DataFrame 时填充默认 0

    我有一个输入字典 其中列表的长度可能不同 d b 2 3 a 1 当我做 df pd DataFrame data d 我正在看ValueError 数组的长度必须相同 Question 创建 df 时如何用默认值 例如 0 填充缺失值 创
  • 如何使用 elisp 更改缓冲区中的单词?

    如何使用 elisp 更改 at point 的单词 很像 大写单词 但使用我自己的函数 背景 我编写了一个函数 可以检测当前点数字的基数 并将其转换为任何其他基数 我想做的是直接更改缓冲区中的数字 TIA 马库斯 试试这个代码 我已经包含
  • 如何在表格内打印表格的内容? [路亚]

    我想做的只是在表中打印表的内容 例如 local stats table1 tTable1 data 1 tTable2 data2 2 tTable3 data3 3 我并不真正关心表 1 或所有表 而是关心数据变量中的信息 我怎样才能打
  • 为自定义 WCF 绑定指定 HTTPS

    我有一个自定义绑定定义如下
  • 在列表中调用“del”

    class ToBeDeleted def init self value self value val Whatever def del self print self value l ToBeDeleted i for i in ran
  • 从另一个 Java 应用程序启动一个 Java 应用程序

    我正在做一个 Java 记录 重放工具 我需要从我的主 Java 应用程序启动 Java 应用程序 我需要访问 EventDispatchThread 以便拦截事件并记录它们 因此我通过反射启动应用程序 简化的代码片段 Class
  • .NET 编译器平台:不工作

    我安装了 Microsoft Visual Studio Enterprise 2017 版本 15 5 5 显然是日期的最新版本 但是 我无法使用 NET Compiler Platform SDK 我曾经将它作为扩展 但现在它无法与警告
  • 根据任意数字出现拆分字符串

    使用正则表达式如何根据数字出现拆分字符串 例如我有一个如下所示的字符串 var text 1 dozen 3 dozen 4 dozen kg 我需要把它分开 预期输出 1 dozen 3 dozen 4 dozen kg 我尝试了以下正则
  • 有没有办法使用 JS 确定何时加载 4 个图像?

    我一页上有 4 张图片 我想在所有 4 个图像加载完毕后触发 JS 事件 我当然无法确定图像将以哪个顺序加载 因此我无法在最后一个图像上触发事件 一个想法是有一个计数器 但我想不出检查该计数器何时等于 4 的最佳方法 因为我不喜欢 setT