我正在尝试制作一个列表过滤器,它在小列表上工作正常,但在大列表上出现问题,它变得非常慢。如果单击重置按钮或删除某些字符,则新列表显示速度很慢。这样做的方式可能存在一些问题,请帮助我。以下是我的代码: HTML:
<div class="filter-wrap">
<span class="clearable">
<input class="data_field" name="data_field" id="brands-search" placeholder="Search Brands Here" type="text"/>
<span class="icon_clear" style="cursor:pointer;">✘</span>
</span>
<div class="small-bt"><p class="common all">select all  |</p><p class="common none"> unselect all</p></div>
<div class="check-wrap" id="brands">
<div class="check-unit">
<input type="checkbox" class="check" />
<p class="slide-head brandList">Samsung</p>
</div>
</div>
</div>
查询:
$('.check-unit:nth-child(even)').css({'float':'right'});
function listFilter(list){
$('.data_field').change( function () {
var filter = $(this).val();
if(filter) {
$(list).children("p:not(:Contains(" + filter + "))").parent().slideUp();
$(list).children("p:Contains(" + filter + ")").parent().slideDown();
//console.log($(".a:nth-child(1)").text());
} else {
$(list).children("p").parent().slideDown().removeClass("a");
}
})
.keyup( function () {
$(this).change();
});
}
这里check-unit
重复。有关详细信息,请参阅此 jsfiddle http://jsfiddle.net/iiison/BdRpk/
还有一件事:为了使布局正确,我使用$('.check-unit:nth-child(even)').css({'float':'right'});
了(javascript 的第一行)。如果您在输入框中输入内容,布局会受到干扰,请告诉我此问题的解决方案。