|
76 | 76 | * object/undefined/null - overrides `defaultOptions` with `options` (if any), and starts plugin
|
77 | 77 | * string - calls the corresponding `base` method
|
78 | 78 | */
|
79 |
| - var DATA_OBJ_NAME = 'loadingdots'; |
| 79 | + var dataObjectKey = 'loadingdots'; |
80 | 80 | if (!options || typeof options == 'object') {
|
81 |
| - if (!$(el).data(DATA_OBJ_NAME)) { |
82 |
| - var _options = $.extend({}, defaultOptions, options); |
83 |
| - $(el).data(DATA_OBJ_NAME, base); |
84 |
| - $(el).data(DATA_OBJ_NAME).init(_options); |
| 81 | + |
| 82 | + // If Loading Dots hasn't been initialized yet |
| 83 | + if (!$(el).data(dataObjectKey)) { |
| 84 | + |
| 85 | + // Fetch options set via data-loadingdots-(word|dots|speed) |
| 86 | + var dataOptions = {}; |
| 87 | + $.each(defaultOptions, function(key) { |
| 88 | + var dataOption = $(el).data(dataObjectKey+'-'+key); |
| 89 | + if (dataOption !== undefined) { dataOptions[key] = dataOption; } |
| 90 | + }); |
| 91 | + |
| 92 | + // Override `defaultOptions` with `options`, and then with `dataOptions` |
| 93 | + var _options = $.extend({}, defaultOptions, options, dataOptions); |
| 94 | + |
| 95 | + // Set `base` as data-loadingdots, and init with _options |
| 96 | + $(el).data(dataObjectKey, base); |
| 97 | + $(el).data(dataObjectKey).init(_options); |
| 98 | + |
85 | 99 | }
|
86 |
| - else { |
87 |
| - $(el).data(DATA_OBJ_NAME).start(); |
| 100 | + else { // If Loading Dots is initialized, call start |
| 101 | + $(el).data(dataObjectKey).start(); |
88 | 102 | }
|
89 | 103 | }
|
90 | 104 | else if (typeof options == 'string') {
|
91 |
| - $(el).data(DATA_OBJ_NAME)[options](); |
| 105 | + $(el).data(dataObjectKey)[options](); |
92 | 106 | }
|
93 | 107 |
|
94 | 108 | });
|
|
0 commit comments