javascript - 小幅修改后 setAttribute 在 IE10 上竟不能正常工作
PHP中文网
PHP中文网 2017-04-11 10:15:35
0
1
368

背景介绍:项目中使用一个JS库来实现图片预览功能,之前一切正常,后为了解决一些样式问题,事先把页面中的图片隐藏,待图片全部加载完后再显示出来,(JS中新添加的唯一一行代码下方有标注),发现在 IE10 上 setAttribute 不生效,每张 img 并没有如预期那样被设置了data-size属性,十分困惑不解,望赐教

function initImgGallery() {
    var $imgListBox = $('.ppt-gallery');
    var $imagesArr = $imgListBox.find('img');
    var count = $imagesArr.length;
    $imagesArr.load(function() {
        count--;
        if (!count) {
            for (var i = 0; i < $imagesArr.length; i++) {
                var naturalWidth =  $imagesArr[i].naturalWidth;
                var naturalHeight = $imagesArr[i].naturalHeight;
                $imgListBox.find('img').eq(i)[0].setAttribute('data-size', naturalWidth + 'x' + naturalHeight);
            }
            if (isIE) {
                $('.ppt-gallery').find('img').each(function () {
                    var maxWidth = $('.lesson-detail-container').width();
                    $(this).css({
                        'width': maxWidth,
                        'display': 'inline' // 新加的
                    });
                });
            }
            initPhotoSwipe('.ppt-gallery');
        }
    }).filter(function() { return this.complete; }).load();
}
PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
阿神

IE10上测试了,setAttribute是有用的

**Q:什么情况会失效?
A:当setAttribute的值不合法时,设置的属性不会出现,也就是说下面这句中**:

setAttribute('data-size', naturalWidth + 'x' + naturalHeight)

naturalWidth + 'x' + naturalHeight这个值不合法时

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!