Projet

Général

Profil

Paste
Télécharger (2,11 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / flexslider / assets / js / flexslider.load.js @ cb17e347

1
(function($) {
2

    
3
  // Behavior to load FlexSlider
4
  Drupal.behaviors.flexslider = {
5
    attach: function(context, settings) {
6
      var sliders = [];
7
      if ($.type(settings.flexslider) !== 'undefined' && $.type(settings.flexslider.instances) !== 'undefined') {
8

    
9
        for (id in settings.flexslider.instances) {
10

    
11
          if (settings.flexslider.optionsets[settings.flexslider.instances[id]] !== undefined) {
12
            if (settings.flexslider.optionsets[settings.flexslider.instances[id]].asNavFor !== '') {
13
              // We have to initialize all the sliders which are "asNavFor" first.
14
              _flexslider_init(id, settings.flexslider.optionsets[settings.flexslider.instances[id]], context);
15
            } else {
16
              // Everyone else is second
17
              sliders[id] = settings.flexslider.optionsets[settings.flexslider.instances[id]];
18
            }
19
          }
20
        }
21
      }
22
      // Slider set
23
      for (id in sliders) {
24
        _flexslider_init(id, settings.flexslider.optionsets[settings.flexslider.instances[id]], context);
25
      }
26
    }
27
  };
28

    
29
  /**
30
   * Initialize the flexslider instance
31
   */
32

    
33
  function _flexslider_init(id, optionset, context) {
34
    $('#' + id, context).once('flexslider', function() {
35
      // Remove width/height attributes
36
      // @todo load the css path from the settings
37
      $(this).find('ul.slides > li > *').removeAttr('width').removeAttr('height');
38

    
39
      if (optionset) {
40
        // Add events that developers can use to interact.
41
        $(this).flexslider($.extend(optionset, {
42
          start: function(slider) {
43
            slider.trigger('start');
44
          },
45
          before: function(slider) {
46
            slider.trigger('before');
47
          },
48
          after: function(slider) {
49
            slider.trigger('after');
50
          },
51
          end: function(slider) {
52
            slider.trigger('end');
53
          },
54
          added: function(slider) {
55
            slider.trigger('added');
56
          },
57
          removed: function(slider) {
58
            slider.trigger('removed');
59
          }
60
        }));
61
      } else {
62
        $(this).flexslider();
63
      }
64
    });
65
  }
66

    
67
}(jQuery));