2014-01-16 210 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