2010-07-15 44 views
0

失败我使用以下代码动态地更新在JQTouch部位的图像:JQuery的图像加载上MobiOne iPhone模拟器

$('#sv_map') 
      .one('load', function() { 
       $(this).fadeIn(); 
      }) 
      .attr('src', imgURL); 

得到的这个基本从heresv_map是一个图像,而imgURL指向一个有效的,现有的JPG文件。

此代码在所有主流浏览器(Chrome,Safari,Firefox,IE)以及实际设备(多款iPhone和iPod)上按预期工作。

我不想总结模拟器有一个错误(它看起来像这样一个微不足道的问题)。需要额外的代码来确保图像文件被加载?有没有人有过与MobiOne类似的经历?

回答

2

并非所有浏览器正确触发的事件load(尤其是从缓存中加载时),所以你需要通过在图像上检查.complete做手工,像这样:

$('#sv_map').one('load', function() { 
       $(this).fadeIn(); 
      }).attr('src', imgURL) 
       .each(function() { 
       if(this.complete) $(this).load(); 
      }); 
+0

感谢队友,这并它! – Ryan 2010-07-16 12:14:08

+0

也为我工作! +2给你 – electblake 2011-01-07 16:35:11