我使用同位素创建了一个站点,当您单击其中一个过滤器时,我无法添加项目。
这是我用于过滤的脚本:
<script type="text/javascript">
// cache container
var $container = $('#container');
// initialize isotope
$container.isotope({
filter: '.front'
});
// filter items when filter link is clicked
$('#filters a').click(function() {
var selector = $(this).attr('data-filter');
$container.isotope({ filter: selector });
return false;
});
</script>
效果很好,但我在添加或取消隐藏内容时遇到了麻烦,
我试图将这个http://jsfiddle.net/RRgjD/改编为我的代码,但我对 javascript 不是很好,并且一直在我的脸上摔倒。
下面是我正在使用的 html 示例。
<li><a href="#filter" data-filter=".identity, .menufilter">— Brand Identity</a></li>
<li><a href="#filter" data-filter=".guidelines, .menufilter">— Brand Guidelines</a></li>
<li><a href="#filter" data-filter=".photography, .menufilter">— Brand Photography</a></li>
<li><a href="#filter" data-filter=".digital, .menufilter">— Digital</a></li>
<div class="item cols-1 rows-1 identity">
<span class="new-wrapper">
<div class="post-thumb clearfix">
<a title="Eternal friendship" href="#">
<img src="images/thumbs/oxford.jpg" alt="brain" width="200" height="133"/>
</a>
</div>
<a href="#"><span>
<h2></h2>
<p>
<p></p>
</p>
</span></a>
</span>
</div>
任何帮助或方向都会很棒。我还研究了同位素附带的插入方法,但它远远超出我的想象,我什至不知道从哪里开始。
提前致谢!
编辑:
这开始过滤 .front 类,但其他类的过滤不起作用:
<script type="text/javascript">
$(function() {
var $container = $('#container'),
$checkboxes = $('#filters a');
$container.isotope({
itemSelector: '.item'
});
$container.isotope({
filter: '.front'
});
$checkboxes.change(function() {
var filters = [];
// get checked checkboxes values
$checkboxes.click(function(){
var selector = $(this).attr('data-filter');
$container.isotope({ filter: selector });
return false;
});
// ['.red', '.blue'] -> '.red, .blue'
filters = filters.join(', ');
$container.isotope({
filter: filters
}, function($changedItems, instance) {
instance.$allAtoms.filter('.isotope-hidden').removeClass('is-filtered');
instance.$filteredAtoms.addClass('is-filtered');
});
});
});
</script>