我最近做了一个小的jQuery片段,它允许我显示加载img,直到加载真实图像。
该代码段似乎适用于Safari,Chrome但不适用于FireFox。
FireFox仅显示loading
alt,并且永远不会切换到加载的图像。
以下是摘录
var loading = $('<img src="/media/ajax-loader.gif" alt="loading" />');
$('.thumbnail').each(function(){
var loadIMG = loading.clone();
$(this).after(loadIMG).load(function(){
$(this).fadeIn('fast');
loadIMG.hide();
}).hide();
});
任何想法为什么?
答案 0 :(得分:1)
你还没有说过究竟是什么在FF上讨价还价,但下面可能是其中一个问题。来自jquery documentation
有可能是load事件 如果图像是,将不会被触发 从浏览器缓存加载。至 考虑到这种可能性,我们可以 使用触发的特殊加载事件 如果图像准备就马上。 event.special.load目前 可以作为插件使用。
这是插件的link。
编辑:
根据加载事件的评论,请尝试以下操作:
$('.thumbnail').each(function(){
var loadIMG = loading.clone();
$(this).after(loadIMG).load(function(){
$(this).fadeIn('fast');
loadIMG.hide();
}).hide();
if (this.complete) $(this).trigger("load");
});
当然,插件似乎也在做同样的事情以及处理其他一些场景。