Sort Lists with JavaScript September 18th, 2013

This solution requires jQuery and Underscore.

var wnt = {};

wnt.sortList = {
    asc: function(sList){
        sListItems = $(sList).find('li');
        sListItems = _.sortBy(sListItems, function(item){
            return $(item).text();
        });
        $(sList).html(sListItems);
    },
    desc: function(sList){
        sListItems = $(sList).find('li');
        sListItems = _.sortBy(sListItems, function(item){
            return $(item).text();
        }).reverse();
        $(sList).html(sListItems);
    }
};

wnt.sortToggle = "asc";
$('ul').click(function(){
    wnt.sortList[wnt.sortToggle]($(this));
    wnt.sortToggle==='asc' ? wnt.sortToggle="desc" : wnt.sortToggle="asc";
});

Fiddle