En utilisant la dernière version de jQuery (1.9.0), je ne comprends pas pourquoi ce code ne fonctionne pas :
$.testAjaxFilter = function() {
var base = this;
// get faq categories
var currentFaqCategories = $('#category-list ul li a');
// loop through each faq category link and bind a click event to each
if ( typeof currentFaqCategories !== 'undefined') {
$.each(currentFaqCategories, function(index, category) {
$(category).click( function(e) {
$(e.target).getFaqList();
return false;
});
});
}
// GET faq list elements from category link
$.fn.getFaqList = function() {
$.get($(this[0]).attr('href'), function(data) {
base.addFaqSectionToPage( $(data).find('section.faq-page #content-column') );
});
};
// add new faq section to current page
this.addFaqSectionToPage = function(faqSection) {
// remove old faq section
var currentFaqSection = $('section.faq-page #content-column');
currentFaqSection.empty();
currentFaqSection.append(faqSection);
};
};
$.testAjaxFilter();
Dans la console, lorsque l'on clique sur l'un des liens de catégorie, le GET récupère la page entière dans sa réponse, mais il est ensuite suivi d'une erreur de syntaxe, expression non reconnue : (liste de tout le HTML de la page récupérée). Il y a donc quelque chose qui ne va pas dans $.fn.getFaqList
éventuellement l'utilisation de $(data)
?
Y a-t-il quelque chose d'évident que je fais mal ? Toute aide serait grandement appréciée. Je ne suis pas très calé en matière d'AJAX.