2010-11-05 6 views
1

Je fais un site Web en 3 langues, où j'ai besoin de trier les commentaires de toutes les 3 langues, qu'ils sont visibles sur toutes les pages de la langue. http://www.polinapasztircsak.com/guestbook/ J'ai essayé de chargement avec la méthode jQuery .load, et cela fonctionne, mais le problème est qu'il charge les langues séparées en div s (je ne savais pas d'autre moyen de charger et de l'ajouter) et je ne peux pas trier le commentaire li s à l'extérieur de leur div s. Voici le code:Tri li dans jQuery chargé divs

var commEng = $('<div></div>').load('../guestbook/ .comment'); 
var commHun = $('<div></div>').load('../vendegkonyv/?lang=hu .comment'); 
var commIta = $('<div></div>').load('../libro-ospiti/?lang=it .comment'); 

$(".commentlist").empty().append(commEng).append(commHun).append(commIta); 

Avez-vous une autre suggestion comment je pourrais charger dans les li s, que je les ai dans la même ul, puis la méthode ou plug-in à utiliser pour le tri que .

Répondre

1

Vous pouvez essayer d'utiliser $.get ou d'autres fonctions ajax pour charger les commentaires, puis les trier en utilisant la fonction sort de Javascript. Le code ressemblerait à quelque chose comme ceci:

var loaded = 0, 
    sites = 3, 
    comments = []; 

function getComments(url){ 
    $.get(url, function(data){ 
     comments[loaded++] = ($(data).find('.comment')); 
     if(loaded === sites){ 
      var insert = comments[0]; 

      for(var i = 1; i < comments.length; i++){ 
       insert = insert.add(comments[i]); 
      } 

      $('.commentlist').append(insert.sort(function(a, b){ 
       var dateA = new Date($.trim($(a).find('.comment-meta:first a').text()).replace('at', '') + ' GMT'), 
        dateB = new Date($.trim($(b).find('.comment-meta:first a').text()).replace('at', '') + ' GMT'); 

       return dateB.getTime() - dateA.getTime(); 
      })); 
     } 
    }); 
} 

getComments('../guestbook/'); 
getComments('../vendegkonyv/?lang=hu'); 
getComments('../libro-ospiti/?lang=it'); 

Ce triera l'élément jQuery reçu par ajax avec sort() en passant dans une fonction qui permettra de comparer les dates des commentaires raclé le commentaire méta. Rappelez-vous également que div s dans ul liste non ordonnée n'est pas valide HTML.

+0

Merci beaucoup cela fonctionne très bien! La seule chose que j'avais à ajouter était le empty() avant append(), de sorte que les anciens commentaires soient supprimés, avant que les commentaires nouvellement triés soient placés. Cordialement, – Gas