Cela fonctionne vite par rapport à d'autres. Mais je ne sais pas à quelle vitesse il serait sur les ordinateurs lents .. Le code filtre les résultats dymanically. Les critères sont définis dans la classe css ..Améliorer les performances de ce script 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();
})
});
Des idées pour l'améliorer? Aussi Que puis-je faire preventDefault (itsnot en considération si le isnt tout document chargé, car cela peut être un problème pour les personnes impacient ..
il fonctionne très bien et vous n'avez pas un problème? .. rien à voir ici, alors. – Fosco
Seule chose qui vient à l'esprit si la spécificité. Pouvez-vous être plus précis sur certains des sélecteurs pour que l'inspection DOM ne soit pas trop lourde? – brumScouse
Je n'exécuterais pas une fonction 'each' dans un' autre '' mais j'aurais besoin de voir du HTML pour avoir une meilleure idée. – Mottie