我可能遗漏了一些非常简单的东西,但情况如下:
我有一排复选框和一个列表项网格。我希望复选框根据检查的内容切换列表项的可见性(只是标准过滤)。
我已经确定我必须使用 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');
});
});
任何帮助将不胜感激。非常感谢。