おそらく非常に単純なものが欠けていますが、状況は次のとおりです。
チェックボックスの行とリスト項目のグリッドがあります。チェックボックスが、チェックされているものに応じてリスト項目の表示を切り替えられるようにします (標準のフィルタリングのみ)。
jQuery .detach() & .appendTo() 関数を使用する必要があると判断しました。これにより、リスト項目が消えたり再表示されたりするときに、すべての :nth-child 属性がそのまま保持されるためです。
ここに私のHTMLがあります:
<div id="filter">
<input type="checkbox" id="print" rel="print">Print</label>
<input type="checkbox" id="web" rel="web">Web</label>
<input type="checkbox" id="identity" rel="identity">Identity</label>
</div>
そして、クラスフィールドにさまざまなタグ名を持つ大量の LI があります -
<ul>
<li class="print">
// stuff
</li>
.
.
.
</ul>
そして今、私のjQueryについて(フィルターチェックボックスをクリックして初めて機能しますが、その後は何もしません...)
$('#filter').delegate('input:checkbox', 'change', function() {
var $lis = $('#grid-wrap > li').detach();
//For each one checked
$('input:checked').each(function() {
$lis.filter('.' + $(this).attr('rel')).appendTo('#grid-wrap');
});
});
どんな助けでも大歓迎です。どうもありがとう。