Commit 0a805ee
Deefour
Fixes getter methods created when plugins are initialized.
Because the following function definition is not wrapped in a closure
self[name] = function() { return plugin; };
`plugin`'s scope is the `TextExt.initPlugins` function. Because of this,
on each iteration of the list of plugins to create the getter methods in
`TextExt`, the return value of all created methods will be the last
value of `plugin` and not the value of `plugin` from when the function
was defined for each.
Wrapping the function definition in a closure fixes this issue.
As an explicit example:
Previously, when instantiating a new `textext(...)` instance and
defining the `plugins` option as
plugins: 'autocomplete arrow'
All 3 of the following would return the `TextExtArrow` instance
$('...').textext()[0].ie9();
$('...').textext()[0].autocomplete();
$('...').textext()[0].arrow();
After they closure from this changeset is applied, they return their
expected plugin instances
$('...').textext()[0].ie9(); // TextExtIE9Patches
$('...').textext()[0].autocomplete(); // TextExtAutocomplete
$('...').textext()[0].arrow(); // TextExtArrow1 parent 1786e49 commit 0a805ee
1 file changed
+3
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
802 | 802 | | |
803 | 803 | | |
804 | 804 | | |
805 | | - | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
806 | 808 | | |
807 | 809 | | |
808 | 810 | | |
| |||
0 commit comments