javascript - 加载图像后触发 JavaScript 的最快方法?

标签 javascript jquery

我有一部分代码依赖于了解页面上图像的宽度。

如果我立即触发它(在 $(function(){ 的顶部),它有时不起作用,因为图像尚未加载。

如果我使用 jquery(我已经将它用于页面上的其他内容)在 load() 上触发,它永远不会触发。可能是因为图像在 JS 执行之前就已加载,或者因为它已被缓存。

$('#photo').load(function(){
    alert('loaded');
});
//doesn't fire

如果我执行以下操作,它确实可以工作,但是在第二次获取图像时出现明显的延迟:

$('#photo').load(function(){
    alert('loaded');
});
$('#photo').attr('src',$('#photo').attr('src')+'?'+new Date().getTime());
//fires, but is slow

2016 年一定有一个很好的方法可以做到这一点吗?无论是在 jquery 还是 vanilla JS 中。

最佳答案

为什么不简单地使用图像的onLoad函数:

<img src="/path/to/image.jpg" onload="doStuff(this);" />

图像加载后就会触发..

关于javascript - 加载图像后触发 JavaScript 的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35601440/

相关文章:

javascript - 如何设置更大的负值以在莫里斯条形图中显示更短的条形图?

javascript - 每次加载文件时都会调用 this.init = function() 吗?

asp.net - 使用 Jquery 访问隐藏字段

jquery - .eq() 和 .get() 之间的区别和 :nth-child()?

javascript - PHP 是否包含 HTTP 请求?

javascript - Angular - 如何优化代码以缩短加载时间?当前加载时间为 2.45 秒

javascript - 尝试测试数组中是否存在某个项目并更新数组

javascript - 如何在jquery中点击函数绑定(bind)2个元素

javascript - 需要解决方案以在不破坏布局的情况下公开表中的详细信息

javascript - 单击时添加类,然后单击时将其删除