javascript - 图片加载失败时,重试加载,如果重试加载不出来显示默认图片,不知道这样写对不对?高人指点一下
伊谢尔伦
伊谢尔伦 2017-04-10 15:24:41
[JavaScript讨论组]
<body>
   <img  id="img"  src="clock60.png"  retry="0" onerror="errorImg(this)" />

   <script>

   function errorImg(img) { 

     var retry= $('#img').attr("retry");
     if(retry>0)
     {
        $('#img').src="1.png";
     }
     else
     {
        retry = retry++;
        $('#img').attr("retry",retry);
        var sourceSrc=$('#img').src;
        $('#img').src=null;
        $('#img').src=sourceSrc;

     }
   </script>
</body>
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
怪我咯

先贴出正确的做法:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://cdn.bootcss.com/jquery/2.1.0-beta3/jquery.min.js"></script>
</head>
<body>
<img id="img"  src="clock60.png"  retry="0" >
<script>
$(function() {
    $('#img').on('error', function() {
        var retry= $('#img').attr("retry");

        if (retry > 0) {
            $('#img').attr('src', 'https://iustudio.science/images/srpr/logo11w.png');
        } else {
            retry++;

            $('#img').attr("retry", retry);
            $('#img').attr('src', $('#img').attr('src'));
        }
    });
})   
</script>
</body>
</html>

你里面还有一个有点大的坑,就是这里:

retry = retry++;

其结果并没有实现加1,还是保留是原值 0.

另外还有jquery 和 js 操作原始dom想混淆的地方。

$('#img').src
要么 $('#img')[0].src
要么 $('#img').attr('src')
黄舟

不知道你用的是不是jquery。
如果是jquery的话,设置属性值的应该是$("img").attr("src",sourceSrc);.你的语法我好像还没见过。。。

 function errorImg(img) { 

     var _this=$(img);
     var retry= _this.attr("retry");

     if(retry>0){
       _this.attr("src","1.png");
     }else{
        retry = retry++;
        _this.attr("retry",retry)
             .attr("src",_this.attr("src"));
     }
  }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号