我的Javascript技能充其量只是初学者,但我尝试从here实现延迟加载flexslider解决方案。 滑块和加载工作正常,但是当我遇到控制台错误时滑块已经循环:
“未捕获的TypeError:无法调用未定义的方法'removeAttr'”
我的JS坐在脑袋里:
JS
<script type="text/javascript" charset="utf-8">
$(window).load(function() {
$('.projcontainer').flexslider({
slideshow: false,
after: function(slider) {
var slides = slider.slides,
index = slider.animatingTo,
$slide = $(slides[index]),
$img = $slide.find('img[data-src]');
if ($img) {
$img.attr("src", $img.attr('data-src')).removeAttr("data-src");
}
}
});
});
</script>
HTML
<li>
<img class="lazy" src="loading.gif" data-src="myimage.png"/>
</li>
由于知识有限,我知道我需要完成“else if”声明,但这并不适用于我。任何帮助将不胜感激。
答案 0 :(得分:0)
将if ($img)
更改为if ($img.length)
。你的if条件总是会通过,因为$img
永远不会为null(它是一个jQuery对象)。