root / drupal7 / sites / all / modules / flexslider / assets / js / flexslider.load.js @ fc2c1c7a
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)); |