Jquery img preload在FireFox中不起作用

时间:2010-09-21 07:25:00

标签: jquery-effects jquery jquery-load

我最近做了一个小的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();
    });

任何想法为什么?

1 个答案:

答案 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");
});

当然,插件似乎也在做同样的事情以及处理其他一些场景。