懒惰加载flexslider

时间:2014-01-16 22:59:11

标签: javascript loading lazy-evaluation flexslider

我的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”声明,但这并不适用于我。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

if ($img)更改为if ($img.length)。你的if条件总是会通过,因为$img永远不会为null(它是一个jQuery对象)。