Last active
January 2, 2016 14:29
-
-
Save amyinorbit/8317471 to your computer and use it in GitHub Desktop.
Recherche dans search.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var searchIndex = null; | |
var results = []; | |
jQuery(document).ready(function() { | |
Search.getSearchIndex(); | |
jQuery('#s').keyup(function() { | |
// get search term | |
var search_term = jQuery(this).val().toLowerCase(); | |
// run the search | |
Search.doSearch(search_term); | |
}) | |
}); | |
var Search = { | |
// Load the index file for later use | |
getSearchIndex: function() { | |
jQuery.getJSON("/search.json", function(data) { | |
console.log('[Search index successfully loaded]'); | |
jQuery('.search_results').html(''); // on vide la liste, au cas ou | |
searchIndex = data; | |
}); | |
}, | |
doSearch : function(search_term) { | |
results = []; | |
if(search_term.length > 6) { // si la recherche est plus longue que 6 caractères | |
jQuery.each(searchIndex, function(id, article) { | |
var titleLowerCase = article.title.toLowerCase(); // on convertit tout en bas-de-casse | |
if (titleLowerCase.indexOf(search_term) !== -1) { | |
results.push(article); // si la recherche est contenue dans le titre de l'article en cours, on l'ajoute aux resultats | |
}; | |
}); | |
Search.printResults(); // le tableau des resultats est construit, on lance l'affichage | |
} | |
else { | |
jQuery('.search_results').fadeOut(100); // on masque le menu | |
jQuery('.search_results').html(); // on vide le menu | |
results = []; | |
} | |
}, | |
printResults: function() { | |
var search_results_box = jQuery('.search_results'); // on selectionne l'objet HTML qui contiendra les resultats | |
search_results_box.html(''); | |
search_results_box.html(function() { | |
results = results.slice(0, 10); // on garde les 10 premiers resultats | |
jQuery.each(results, function(index, obj) { | |
search_results_box.append( // on ajoute un element de liste au menu | |
'<li>'+ | |
'<a href="'+obj.url+'">'+obj.title+'</a>'+ | |
'</li>' | |
); | |
}); | |
}); | |
jQuery('.search_results').fadeIn(100); // on affiche le menu | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment