【问题标题】:jQuery check if image is loadedjQuery检查图像是否加载
【发布时间】:2011-03-23 11:12:18
【问题描述】:

我需要以下不起作用的代码的帮助:

var timeoutID=0; var currentImage=0;//第一个图像在 arrImages 数组中的位置 0 var arrImages=[bla bla bla 图像 URL 数组]; 函数幻灯片() { if($('#myImg').complete)// =arrImages.length){nextImage=0;} $('#myImg').attr('src',nextImage); 清除超时(超时 ID); //加载前一张图片后每秒更换一次图片 timeoutID=setTimeout("slideShow()",1000); } 别的 { $('#myImg').load(slideShow); } }

基本上我想每秒更改 #myImg 的 src,前提是计数器在图像加载后开始。

*我讨厌 Stack Overflow 文本编辑器中的代码按钮!

【问题讨论】:

  • 我假设您在 IE 中遇到问题,对吗?在 IE 中,img.completeload 大部分时间不会被触发,除非您在附加事件后注入 src
  • 哈哈,也许吧!我的意思是是的。你能解释一下吗?
  • 看看这篇博文。虽然代码 sn-p 在 mootools 中,但问题就在那里。另外,阅读 cmets。 davidwalsh.name/image-load-event
  • 您应该将其发布为答案,kjy112。

标签: javascript jquery image loaded


【解决方案1】:

'complete' 用于原生 javascript 对象。所以你应该从 jQuery 获取 javascript 对象。 喜欢,

$('#myImg')[0].complete

$('#myImg').get(0).complete

【讨论】:

    【解决方案2】:

    如果我没记错的话,图像在加载时会获得宽度和高度。所以我想你可以检查图像的宽度。只要它是 0,就不会加载图像。

    【讨论】:

    • 嗨,Domen。这是一个很好的提示,只是我使用相同的图像容器来顺序加载图像。因此,一旦加载了第一个图像,我认为它将始终具有宽度和高度。即使我以编程方式更改 src。
    • @Domen 设置默认加载图像的浏览器怎么样?还有那些没有完全加载图像的浏览器(加载时显示模糊)。
    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2016-07-18
    相关资源
    最近更新 更多