isotope を使用してサイトを作成しましたが、フィルターの 1 つをクリックしたときにアイテムを追加するのに問題があります。
これは、フィルタリングに使用しているスクリプトです。
<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>