0
Chris Coyierが書いたFiltering Blocksコードを使用していますが、3番目の 'block'要素に 'last'クラスを追加したいとします。ブロックのフィルタリング+すべての3番目の要素にクラスを追加する
HTML
<div id="blocks-nav">
<a rel="all" class="current">All</a>
<a rel="www">Internet</a>
<a rel="ci">Logo</a>
</div>
<div id="blocks-gropup">
<div class="block all www">
<!-- some content -->
</div>
<div class="block all ci">
<!-- some content -->
</div>
<div class="block all www">
<!-- some content -->
</div>
<div class="block all ci">
<!-- some content -->
</div>
<div class="block all ci">
<!-- some content -->
</div>
<div class="block all www">
<!-- some content -->
</div>
</div>
のjQuery: はこれまでのところ、私はこれ持って
$(function() {
var newSelection = "";
$("#blocks-nav a").click(function(){
$("#blocks-nav").fadeTo(200, 0.10);
$("#blocks-nav a").removeClass("current");
$(this).addClass("current");
newSelection = $(this).attr("rel");
$("div.block").not("."+newSelection).slideUp();
$("."+newSelection).slideDown();
$("#blocks-group").fadeTo(600, 1);
});
});
$("div#blocks-group > div:nth-child(3n)").addClass('last');
この最後の行は、実際に動作し、すべての第三のdivにクラス "最後" を追加し、ブロックをフィルタリングした後、クラスは同じdivで残りますが、3番目の位置では必要ありません。 私の質問は - これらの2つの関数をどのようにマージすることができるので、クラスはページロード時に3番目のdivに追加され、ブロックが取り除かれた後に再び追加されます。
ご協力いただければ幸いです。
をそうでない..私はあなたのソリューションを実装しようとしたが、私は何か間違ったことしなければならない。また、コードは以下を参照、修正するために非常に簡単です仕事:/これは私のコードです:[リンク](http://dronka.org/filtering-blocks.js) – Dronka
アプリケーション、新しい解決策。私はまだこのテクニックはかなりダンディーだと思うので、古い無効な解決策への参照を保持します。 – BGerrissen
あなたの新しいソリューションは素晴らしいですが、私はそれが動作するために必要な方法ではありません。最後の要素にのみ 'last'クラスを追加します。 3番目の要素すべてにクラスを追加するための他の(式「nth-child(3n)」以外の)オプションがあります。これはフィルタリング/隠蔽要素で機能しますか? – Dronka