Skip to content

Commit fc1bcca

Browse files
author
Paulo Pereira
committed
Add support for data-loadingdots-* attributes.
1 parent 9e0eb69 commit fc1bcca

File tree

3 files changed

+43
-13
lines changed

3 files changed

+43
-13
lines changed

README.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ With bower: `bower install jquery-loadingdots`.
88

99
## Usage
1010

11+
### Options
12+
1113
Call `loadingdots()` on your jQuery object. Takes optional parameters, which default to:
1214
```javascript
1315
{
14-
word: 'Loading', // String, Word prefixing the dots
15-
dots: 3, // Number, maximum number of dots
16-
speed: 400 // Number, time in miliseconds of dots increasing interval
16+
word: 'Loading', // String: Word prefixing the dots
17+
dots: 3, // Number: Maximum number of dots
18+
speed: 400 // Number: Time, in miliseconds, between dots increase
1719
}
1820
```
1921

@@ -30,7 +32,21 @@ $('p').loadingdots({ word: 'Processing', speed: 250 });
3032
$('p').loadingdots({ word: '', dots: 5 });
3133
```
3234

33-
## Methods
35+
You can also set options via `data-*` attributes:
36+
* `data-loadingdots-word`: Word prefixig the dots
37+
* `data-loadingdots-dots`: Maximum number of dots
38+
* `data-loadingdots-speed`: Time, in miliseconds, between dots increase
39+
40+
Example:
41+
```html
42+
<!-- No word and 5 dots -->
43+
<p data-loadingdots-word="Processing" data-loadingdots-speed="250"></p>
44+
45+
<!-- You can set an empty string -->
46+
<p data-loadingdots-word="" data-loadingdots-dots="5"></p>
47+
```
48+
49+
### Methods
3450

3551
If you pass a string to `loadingdots` after initializing it, you can control its behaviour.
3652

jquery.loadingdots.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,33 @@
7676
* object/undefined/null - overrides `defaultOptions` with `options` (if any), and starts plugin
7777
* string - calls the corresponding `base` method
7878
*/
79-
var DATA_OBJ_NAME = 'loadingdots';
79+
var dataObjectKey = 'loadingdots';
8080
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+
8599
}
86-
else {
87-
$(el).data(DATA_OBJ_NAME).start();
100+
else { // If Loading Dots is initialized, call start
101+
$(el).data(dataObjectKey).start();
88102
}
89103
}
90104
else if (typeof options == 'string') {
91-
$(el).data(DATA_OBJ_NAME)[options]();
105+
$(el).data(dataObjectKey)[options]();
92106
}
93107

94108
});

jquery.loadingdots.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)