javascript 同位素JS错误
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/31049168/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Isotope JS Error
提问by user2202463
Need a bit of help with a Js error I am getting please:
需要一些帮助来解决我收到的 Js 错误:
Uncaught TypeError: $portfolio.isotope is not a function
未捕获的类型错误:$portfolio.isotope 不是函数
//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; });
回答by Turnip
If you don't want your script to run on pages that don't contain the required elements (.portfolio-items
), you can run your script conditionally based on the length
property of your element collection stored in $portfolio
:
如果您不希望您的脚本在不包含所需元素 ( .portfolio-items
) 的页面上运行,您可以根据length
存储在 中的元素集合的属性有条件地运行您的脚本$portfolio
:
$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;
});
}