1/** 2 * @file 3 * Loads the FlexSlider library. 4 */ 5 6(function ($) { 7 8 'use strict'; 9 10 Drupal.behaviors.flexslider = { 11 attach: function (context, settings) { 12 var sliders = []; 13 var id; 14 if ($.type(settings.flexslider) !== 'undefined' && $.type(settings.flexslider.instances) !== 'undefined') { 15 16 for (id in settings.flexslider.instances) { 17 18 if (settings.flexslider.instances.hasOwnProperty(id)) { 19 if ($.type(settings.flexslider.optionsets) !== 'undefined' && settings.flexslider.instances[id] in settings.flexslider.optionsets) { 20 if (settings.flexslider.optionsets[settings.flexslider.instances[id]].asNavFor !== '') { 21 // We have to initialize all the sliders which are "asNavFor" first. 22 _flexslider_init(id, settings.flexslider.optionsets[settings.flexslider.instances[id]], context); 23 } 24 else { 25 // Everyone else is second. 26 sliders[id] = settings.flexslider.optionsets[settings.flexslider.instances[id]]; 27 } 28 } 29 } 30 } 31 } 32 // Slider set. 33 for (id in sliders) { 34 if (sliders.hasOwnProperty(id)) { 35 _flexslider_init(id, settings.flexslider.optionsets[settings.flexslider.instances[id]], context); 36 } 37 } 38 } 39 }; 40 41 /** 42 * Initialize the flexslider instance. 43 * 44 * @param {string} id 45 * Id selector of the flexslider object. 46 * @param {object} optionset 47 * The optionset to apply to the flexslider object. 48 * @param {object} context 49 * The DOM context. 50 * @private 51 */ 52 function _flexslider_init(id, optionset, context) { 53 $('#' + id, context).once('flexslider').each(function () { 54 // Remove width/height attributes. 55 // @todo load the css path from the settings 56 $(this).find('ul.slides > li > *').removeAttr('width').removeAttr('height'); 57 58 if (optionset) { 59 // Add events that developers can use to interact. 60 $(this).flexslider($.extend(optionset, { 61 start: function (slider) { 62 slider.trigger('start', [slider]); 63 }, 64 before: function (slider) { 65 slider.trigger('before', [slider]); 66 }, 67 after: function (slider) { 68 slider.trigger('after', [slider]); 69 }, 70 end: function (slider) { 71 slider.trigger('end', [slider]); 72 }, 73 added: function (slider) { 74 slider.trigger('added', [slider]); 75 }, 76 removed: function (slider) { 77 slider.trigger('removed', [slider]); 78 }, 79 init: function (slider) { 80 slider.trigger('init', [slider]); 81 } 82 })); 83 } 84 else { 85 $(this).flexslider(); 86 } 87 }); 88 } 89 90}(jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.