IE 11中的jQuery 1.8不会在页面加载时触发图像加载事件

时间:2014-03-24 18:58:08

标签: javascript jquery internet-explorer-11 image-loading jquery-1.8

我有一个动态加载图像的.NET应用程序。我有一个加载gif显示,直到图像加载。然后显示图像。

加载gif图片大小为16x11。 加载的图像都调整为80px宽度。

此代码适用于IE8-10(但不适用于IE11):

$(imagesToLoadList).each(function () {

    var image = $(this);
    var realSrc = image.attr('real-src');

    var demandedImageIndex = parseInt(categoryId) + (scrollCount * 10) + index;

    image.unbind();
    image.bind('load', { ImageIndex: demandedImageIndex }, ImageLoaded);
    image.attr('src', realSrc);

    index++;
});

function ImageLoaded(event) {

    //after image loaded 
}

在IE 11中,图片会加载,但不会调整为80px并保持 16x11。再次触发事件时,它将正确调整大小。 (App有一个滑块,因此每次更改幻灯片时都会调用load事件。)

有关如何解决此问题的任何想法?

仅供参考,图像是否被缓存无关紧要。按照IE8 bug

的思路思考

1 个答案:

答案 0 :(得分:1)

似乎即使使用jQuery 1.8.0 / 1.8.3,它在IE 11中运行良好(现在最新的稳定版本为1.11.3 / 2.1.4。点击预览加载完整版 - 尺寸图片 - JSFiddle

var $img = $('img');

$img.one('click', function() {
    $img.one('load', function() {
        this.width = 320;
        this.height = 240;
        console.log('Image loaded');
    });

    this.src = $(this).data('large-src');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

<img src="http://oi59.tinypic.com/nxtdsp.jpg"
     data-large-src="http://oi57.tinypic.com/fegkeb.jpg"/>

如果您要提供有关错误的工作代码段,也许我可以帮助您。

相关问题