加载延迟加载后,我无法设置图像默认值。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="images/logo.png" onerror="setDefaultImage(this);" data-original="http://pacehold.it/600x450" class="img-responsive lazy" alt="">
{{1}}
答案 0 :(得分:0)
只需将函数声明移出$
函数即可。当$
中的函数不在窗口的上下文中时,html无法访问它。当您将其移出时,您可以使用window.setDefaultImage
(在console
中尝试)来访问它,以便使用html。
//function setDefaultImage(img) {
//set default.
//img.src = "https://www.google.com/images/srpr/logo11w.png";
//}
var errorURL = "https://www.google.com/images/srpr/logo11w.png";
$('[data-original]').each(function() {
var $this = $(this),
src = $this.attr('data-original');
var img = new Image();
img.onload = function() {
$this.attr('src', src);
}
img.onerror = function() {
$this.attr('src', errorURL);
}
img.src = src;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Error:
<img data-original="http://pacehold.it/600x450" class="img-responsive lazy" alt=""> <br />
OK:
<img data-original="https://www.w3schools.com/html/pic_mountain.jpg" class="img-responsive lazy" alt="">
&#13;