---
title: Sorting
layout: default
category: demos
---
  
  <section id="copy">
    <p>Sort item elements based on any data you can extract from them.</p>
    <p>See <a href="../docs/sorting.html">docs on sorting</a>.</p>
  </section>
  
  <section id="options" class="clearfix">
    
    {% include sort-buttons.html %}

  </section> <!-- #options -->
  
  <div id="container" class="clearfix">
    {% for elem_number in site.best_of_order %}
      {% assign element = site.elements[elem_number] %}
      {% include element-partial.html %}
    {% endfor %}
  </div> <!-- #container -->
  
  <script src="../{{ site.jquery_js }}"></script>
  <script src="../{{ site.isotope_js }}"></script>
  <script>
    $(function(){
      
      var $container = $('#container');
      
      $container.isotope({
        itemSelector : '.element',
        getSortData : {
          symbol : function( $elem ) {
            return $elem.attr('data-symbol');
          },
          category : function( $elem ) {
            return $elem.attr('data-category');
          },
          number : function( $elem ) {
            return parseInt( $elem.find('.number').text(), 10 );
          },
          weight : function( $elem ) {
            return parseFloat( $elem.find('.weight').text().replace( /[\(\)]/g, '') );
          },
          name : function ( $elem ) {
            return $elem.find('.name').text();
          }
        }
      });
      
      {% include option-set-buttons.js %}
      
    });
  </script>
