konratnox
9/9/2016 - 2:20 PM

Сортировка элементов

Сортировка элементов

$('.sortBut').click(function(event) {
		event.preventDefault();
		var sortMethod = $(this).attr('data-sortmethod');
		sortBlocks('.sectionRow', '.catalogItem', sortMethod);
	});
// глобальная переменная для определения сортировки
var orderdirection = [];

function sortBlocks(containerSelect, selector, orderAttr) {
		$(containerSelect).each(function(index, el) {
			var divs = $(el).find(selector);
			var arrayToSort = [];
			divs.detach().sort(function(a, b) {
				a = parseFloat(a.getAttribute('data-'+orderAttr));
				b = parseFloat(b.getAttribute('data-'+orderAttr));
				if( orderdirection[orderAttr] === undefined || orderdirection[orderAttr] === 0 ) {
					return (a > b) ? 1 : (a < b) ? -1 : 0;
				} else{
					return (a < b) ? 1 : (a > b) ? -1 : 0;
				}

			});
			
			// divs.each(function(index, element) {
			//     $(el).append(element);
			// });
			
			
			var fragment = document.createDocumentFragment();
			for (var i = 0; divs.length > i; i++) {
			  fragment.appendChild(divs[i]); 
			}
			el.appendChild(fragment);


		});
		if( orderdirection[ orderAttr ] === undefined || orderdirection[ orderAttr ] === 0 )
		{
			orderdirection[ orderAttr ] = 1; // указывается текущее направление сортировки
		}else{
			orderdirection[ orderAttr ] = 0; // указывается текущее направление сортировки
		}
}