/ Published in: JavaScript
This is a jQuery plugin. It is alternate of Table Sorter, as it will sort the DIV
Expand |
Embed | Plain Text
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ (function($) { $.fn.divSorter = function(settings) { settings = jQuery.extend({ container: '', column_prefix: 'sortindex_', class_normal: 'div_sorter_normal_class', class_asc: 'div_sorter_asc_class', class_desc: 'div_sorter_desc_class', classNotToUse:'nosort' }, settings); return this.each(function(){ this_id = $(this).attr('id'); $('#'+this_id+' div').each(function(i){ if( !$(this).hasClass(settings.classNotToUse) ){ $(this).bind('click', function(){ $('#'+this_id+' div').removeClass(settings.class_asc); $('#'+this_id+' div').removeClass(settings.class_desc); div_sorter_sort_column_function( settings.container, settings.column_prefix + (i+1), this, settings.class_desc, settings.class_asc); }).addClass(settings.class_normal); } }); }); }; })(jQuery); var div_sorter_column_index; function div_sorter_sort_column_function( Div_container, column_div, obj, class_desc, class_asc ){ if(div_sorter_column_index && div_sorter_column_index == column_div){ $(obj).addClass(class_desc); div_columns_data = $("div." + column_div ).sort(function(a,b){ if ($(a).attr('isNum') != undefined){ return $(a).attr('isNum') - $(b).attr('isNum') ; } else return a.innerHTML < b.innerHTML ? 1 : -1; }); div_sorter_column_index = null; } else{ $(obj).addClass(class_asc); div_columns_data = $("div." + column_div ).sort(function(a,b){ if ($(a).attr('isNum') != undefined) return $(b).attr('isNum') - $(a).attr('isNum'); else return a.innerHTML > b.innerHTML ? 1 : -1; }); div_sorter_column_index = column_div; } for(i = 0; i < div_columns_data.length; i++){ $('#' + Div_container).append( $(div_columns_data[i]).parent() ); } }
You need to login to post a comment.
