2014-01-16 212 views
1

我的JavaScript技能是最好的初学者,但我试图从here实施懒惰加载flexslider解决方案。 滑块和装载工作很好,但是当滑块已经循环一次,我收到的控制台错误:懒惰加载flexslider

“遗漏的类型错误:无法未定义的调用方法‘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

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

+0

谢谢levi!这工作完美。我花了很多时间找到一个解决方案来延迟加载同一页面上的多个flexsliders。此解决方案现已完成。 – user3204532