Это работает быстро по сравнению с другими. Но я не знаю, как быстро это будет на медленных компьютерах. Этот код фильтрует результаты по dymanically. Критерии устанавливаются в классе css ..Улучшение производительности этого сценария jquery
$(document).ready(function()
{
$("#filters a").click(function(event)
{
event.preventDefault();
event.stopPropagation();
if($(this).hasClass("checked"))
{
$(this).removeClass("checked");
}
else if(!$(this).hasClass("disabled"))
{
$(this).addClass("checked");
}
else
{
return false;
}
var results=$("#products li");
results.hide();
$("#filters li.filtersGroup a").removeClass("disabled");
$("#filters li.filtersGroup").each(function(index) {
var classes="";
$(this).find("a.checked").each(function(index) {
classes=classes+ "." + $(this).attr("id") +",";
});
if(classes=="") return true;
results=results.filter(classes.substr(0,classes.length-1));
//periorismos
$("#filters li.filtersGroup").not($(this)).each(function (index){
$(this).find("a").each(function(index) {
if(results.filter("." + $(this).attr("id")).length<=0) {
$(this).removeClass("checked").addClass("disabled");
}
});
});
});
results.show();
})
});
Любые идеи по его улучшению? Кроме того, что я могу делать preventdefault (itsnot срабатывает, если загружен весь документ разве, потому что это может быть проблемой для людей impacient ..
так прекрасно работает и вы не имеете проблему? .. ничего, чтобы видеть здесь, то. – Fosco
Единственное, что приходит на ум, если специфика. Можете ли вы уточнить некоторые из селекторов, чтобы проверка DOM не была слишком тяжелой? – brumScouse
Я бы не запускал функцию 'each' внутри другого' each', но кроме этого мне нужно было бы увидеть HTML-код, чтобы получить лучшую идею. – Mottie