J'essaie de créer une recherche en direct avec des mots clés jQuery et séparés par des virgules. Si je ne prends que la chaîne complète de texte-champ comme mot-clé, la recherche fonctionne comme un charme.jQuery recherche en temps réel avec des mots-clés séparés par des virgules
code (travail pour seul mot-clé):
jQuery("#artikelfilter").keyup(function(){
// Retrieve the input field text and reset the count to zero
var filter = jQuery(this).val(), count = 0;
// Loop through the comment list
jQuery("#liste-alles li").each(function(){
// If the list item does not contain the text phrase fade it out
if (jQuery(this).text().search(new RegExp(filter, "i")) < 0) {
jQuery(this).fadeOut();
// Show the list item if the phrase matches and increase the count by 1
} else {
jQuery(this).show();
count++;
}
});
// Update the count
var numberItems = count;
jQuery("#filter-count").text("Number of Comments = "+count);
});
Ce que je suis en train de faire maintenant, est de filtrer avec plusieurs mots-clés. J'ai pensé diviser la chaîne en un tableau et faire une boucle sur les mots-clés. Le problème est que je reçois beaucoup d'événements jQuery, donc le navigateur ne peut plus le gérer.
Y a-t-il une façon intelligente de faire fonctionner ce système?
Le code pour plusieurs mots-clés (ne fonctionne pas):
jQuery("#artikelfilter").keyup(function(){
// Retrieve the input field text and reset the count to zero
var string_filter = jQuery(this).val();
var array_filter = string_filter.split(',');
// Loop through the comment list
jQuery("#liste-alles li").each(function(){
jQuery.each(array_filter, function(intValue, currentFilter) {
// If the list item does not contain the text phrase fade it out
if (jQuery(this).text().search(new RegExp(filter, "i")) < 0) {
jQuery(this).fadeOut();
// Show the list item if the phrase matches and increase the count by 1
} else {
jQuery(this).show();
}
});
});
});
Merci!
Celui-ci fonctionne parfaitement! Merci beaucoup. Maintenant, il scintille un peu quand je tape. Savez-vous comment je peux faire fonctionner la fonction du clavier avec un retard? Cela rendrait le tout un peu plus lisse ... :) – David
Bienvenue :) Laissez-moi réfléchir et je vais mettre à jour la réponse –
Ça sonne bien! Merci beaucoup! :) – David