2015-06-25 45 views
0

需要一點幫助與JS錯誤我正在請:同位素JS錯誤

Uncaught TypeError: $portfolio.isotope is not a function

 
//ISOTOPE FUNCTION - FILTER PORTFOLIO FUNCTION 

    $portfolio = $('.portfolio-items'); 
    $portfolio.isotope({ 
     itemSelector : 'li', 
     layoutMode : 'fitRows' 
    }); 
    $portfolio_selectors = $('.portfolio-filter >li>a'); 
    $portfolio_selectors.on('click', function(){ 
     $portfolio_selectors.removeClass('active'); 
     $(this).addClass('active'); 
     var selector = $(this).attr('data-filter'); 
     $portfolio.isotope({ filter: selector }); 
     return false; 
    }); 
+0

運行此腳本之前已加載的同位素? – Turnip

+0

是的,同位素已經加載。但是在頁面上它沒有顯示錯誤,只在沒有同位素庫的頁面上顯示。 – user2202463

+0

所以你在沒有包含任何'.portfolio-items'元素的頁面上運行這個? – Turnip

回答

2

如果你不想你的腳本的網頁上運行不包含所需元素(.portfolio-items),可以有條件地運行基於存儲在$portfolio的元素集合的length財產腳本:

$portfolio = $('.portfolio-items'); 

if ($portfolio.length) { // if 'length' is non zero. Enter block... 

    $portfolio.isotope({ 
     itemSelector : 'li', 
     layoutMode : 'fitRows' 
    }); 
    $portfolio_selectors = $('.portfolio-filter >li>a'); 
    $portfolio_selectors.on('click', function(){ 
     $portfolio_selectors.removeClass('active'); 
     $(this).addClass('active'); 
     var selector = $(this).attr('data-filter'); 
     $portfolio.isotope({ filter: selector }); 
     return false; 
    }); 

}