2015-06-25 22 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; 
    }); 

}