jQuery: ordinamento delle liste

Ordinare le liste con jQuery richiede un procedimento simile a quello usato per ordinare le tabelle. Entrambi infatti richiedono l'uso del metodo JavaScript sort(). Vediamo insieme i dettagli.

Abbiamo la seguente lista:


<ul id="sortable">
	<li>jQuery</li>
	<li>CSS</li>
	<li>WordPress</li>
	<li>PHP</li>
	<li>HTML5</li>
	<li>JavaScript</li>
</ul>

Definiamo il seguente oggetto Sortable avente un unico metodo:


var Sortable = {};  
Sortable.sort = function(which, dir) {  
  Sortable.dir = (dir == 'desc') ? -1 : 1;  
  $(which).each(function() {    
    var sorted = $(this).find('> li').sort(function(a, b) {  
      return $(a).text().toLowerCase() > $(b).text().toLowerCase() ?  
        Sortable.dir : -Sortable.dir;  
    });  
    $(this).append(sorted);  
  });  
};  

Il metodo accetta come secondo parametro l'ordine di visualizzazione: -1 è discendente e 1 è ascendente. Questo parametro verrà usato con il metodo JavaScript sort(), che prenderà in esame la prima lettera di ciascuna parola. Esempio:


$(function() {

	$('#asc').click(function() {
	
		Sortable.sort('#sortable', 'asc');
		
		return false;
	
	
	});
	
	$('#desc').click(function() {
	
		Sortable.sort('#sortable', 'desc');
		
		return false;
	
	
	});

});

Potete visionare l'esempio finale in questa pagina.

Torna su