enmi12/glossaire/_includes/option-set-buttons.js
author ymh <ymh.work@gmail.com>
Wed, 06 Nov 2013 03:21:17 +0000
changeset 0 d970ebf37754
permissions -rwxr-xr-x
first import
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
      var $optionSets = $('#options .option-set'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
          $optionLinks = $optionSets.find('a');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
      $optionLinks.click(function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
        var $this = $(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
        // don't proceed if already selected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
        if ( $this.hasClass('selected') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
        var $optionSet = $this.parents('.option-set');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
        $optionSet.find('.selected').removeClass('selected');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        $this.addClass('selected');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        // make option object dynamically, i.e. { filter: '.my-filter-class' }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        var options = {},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
            key = $optionSet.attr('data-option-key'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
            value = $this.attr('data-option-value');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        // parse 'false' as false boolean
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        value = value === 'false' ? false : value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        options[ key ] = value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        if ( key === 'layoutMode' && typeof changeLayoutMode === 'function' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
          // changes in layout modes need extra logic
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
          changeLayoutMode( $this, options )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
          // otherwise, apply new options
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
          $container.isotope( options );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
      });