Projet

Général

Profil

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

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

1
(function($) {
2

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

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

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

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

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

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

    
71
}(jQuery));