www.gusucode.com > 200套html5精品模板51_75 > 051/js/portfolio_sortable.js
(function($) { $.fn.sorted = function(customOptions) { var options = { reversed: false, by: function(a) { return a.text(); } }; $.extend(options, customOptions); $data = $(this); arr = $data.get(); arr.sort(function(a, b) { var valA = options.by($(a)); var valB = options.by($(b)); if (options.reversed) { return (valA < valB) ? 1 : (valA > valB) ? -1 : 0; } else { return (valA < valB) ? -1 : (valA > valB) ? 1 : 0; } }); return $(arr); }; })(jQuery); jQuery(function() { var read_button = function(class_names) { var r = { selected: false, type: 0 }; for (var i=0; i < class_names.length; i++) { if (class_names[i].indexOf('selected-') == 0) { r.selected = true; } if (class_names[i].indexOf('segment-') == 0) { r.segment = class_names[i].split('-')[1]; } }; return r; }; var determine_sort = function($buttons) { var $selected = $buttons.parent().filter('[class*="selected-"]'); return $selected.find('a').attr('data-value'); }; var determine_kind = function($buttons) { var $selected = $buttons.parent().filter('[class*="selected-"]'); return $selected.find('a').attr('data-value'); }; var $preferences = { duration:500, easing: 'easeInOutQuad', adjustHeight: 'dynamic' }; var $list = jQuery('#list'); var $data = $list.clone(); var $controls = jQuery('ul.splitter ul'); $controls.each(function(i) { var $control = jQuery(this); var $buttons = $control.find('a'); $buttons.bind('click', function(e) { var $button = jQuery(this); var $button_container = $button.parent(); var button_properties = read_button($button_container.attr('class').split(' ')); var selected = button_properties.selected; var button_segment = button_properties.segment; if (!selected) { for(var i=0; i<12; i++) { $buttons.parent().removeClass('selected-'+ i) } $button_container.addClass('selected-' + button_segment); var sorting_type = determine_sort($controls.eq(1).find('a')); var sorting_kind = determine_kind($controls.eq(0).find('a')); if (sorting_kind == 'all') { var $filtered_data = $data.find('li'); } else { var $filtered_data = $data.find('li.' + sorting_kind); } if (sorting_type == 'size') { var $sorted_data = $filtered_data.sorted({ by: function(v) { return parseFloat($(v).find('span').text()); } }); } else { var $sorted_data = $filtered_data.sorted({ by: function(v) { return jQuery(v).find('strong').text().toLowerCase(); } }); } $list.quicksand($sorted_data, $preferences, function () { // portfolio thumbnail hover callback $('#list > li').hoverdir(); // $("a.example6").fancybox({ //'titlePosition' : 'outside', //'overlayColor' : '#000', //'overlayOpacity' : 0.9 //}); }); } e.preventDefault(); }); }); });