Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Custom sorting plugin
- (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);
- // DOMContentLoaded
- $(function() {
- // bind radiobuttons in the form
- var $filterType = $('#filter input[name="type"]');
- var $filterSort = $('#filter input[name="sort"]');
- // get the first collection
- var $applications = $('#portfolio');
- // clone applications to get a second collection
- var $data = $applications.clone();
- // attempt to call Quicksand on every form change
- $filterType.add($filterSort).change(function(e) {
- if ($($filterType+':checked').val() == 'all') {
- var $filteredData = $data.find('li');
- } else {
- var $filteredData = $data.find('li[data-type=' + $($filterType+":checked").val() + ']');
- }
- // if sorted by size
- if ($('#filter input[name="sort"]:checked').val() == "size") {
- var $sortedData = $filteredData.sorted({
- by: function(v) {
- return parseFloat($(v).find('span[data-type=size]').text());
- }
- });
- } else {
- // if sorted by name
- var $sortedData = $filteredData.sorted({
- by: function(v) {
- return $(v).find('strong').text().toLowerCase();
- }
- });
- }
- // finally, call quicksand
- $applications.quicksand($sortedData, {
- duration: 800,
- easing: 'easeInOutQuad'
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement