enmi12/glossaire/_posts/demos/2011-01-02-adding-items.html
author ymh <ymh.work@gmail.com>
Mon, 14 Oct 2019 17:39:30 +0200
changeset 7 cf61fcea0001
parent 0 d970ebf37754
permissions -rwxr-xr-x
resynchronize code repo with production
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
---
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
title: Adding items
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
layout: default
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
category: demos
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
---
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
  <section id="copy">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
    <p>The <code>insert</code> method will append, add items to the widget, filter, sort, and then layout all items</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    <p>The <code>appended</code> method adds items to the widget, and then lays out only the new items.</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    <p>The <code>reloadItems</code> method re-collects all items in their current order in the DOM, which can be useful for prepending items.</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    <p>See docs on <a href="../docs/adding-items.html">adding items</a>.</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
  </section>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
  <section id="options">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    <ul class="clearfix">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
      <li id="insert"><a href="#insert">Insert new elements</a></li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
      <li id="append"><a href='#append'>Append new elements</a></li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
      <li id="prepend"><a href='#prepend'>Prepend</a></li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    </ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
  </section>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
  <div id="container" class="clearfix">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    {% for elem_number in site.best_of_order :limit 10 %}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
      {% assign element = site.elements[elem_number] %}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
      {% include element-partial.html %}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    {% endfor %}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
  </div> <!-- #container -->
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
  <script src="../{{ site.jquery_js }}"></script>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
  <script src="../{{ site.isotope_js }}"></script>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
  <script src="../js/fake-element.js"></script>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
  <script>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    $(function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
      var $container = $('#container');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
      {% include add-buttons.js %}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
      $('#prepend a').click(function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        var $newEls = $( fakeElement.getGroup() );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        $container
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
          .prepend( $newEls ).isotope('reloadItems').isotope({ sortBy: 'original-order' })
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
          // set sort back to symbol for inserting
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
          .isotope('option', { sortBy: 'symbol' });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
      $container.isotope({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        itemSelector : '.element',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        filter: '*',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        getSortData : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
          symbol : function( $elem ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            return $elem.attr('data-symbol');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
        sortBy : 'symbol'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
  </script>