1
0
mirror of synced 2024-11-22 13:06:08 +03:00

Fixed deep cloning options

In
f1e86470ca
we tried to fix the issue where multiple instances created in a single
call would share the same options, and this worked for the most common
cases. Unfortunately it did not work for the case where data attributes
were also used with an options object, and as a result data attributes
would be copied to all instances. Data attributes are supposed to be
specific to a single instance.

This was fixed by moving the `true` for the deep copy to the start of
the `$.extend` call, as this is where jQuery looks for the deep copy
flag.

This closes https://github.com/select2/select2/issues/3485
This commit is contained in:
Kevin Brown 2015-11-23 18:55:31 -05:00
parent e2b745ea3e
commit 3c8366e876

View File

@ -17,7 +17,7 @@ define([
if (typeof options === 'object') { if (typeof options === 'object') {
this.each(function () { this.each(function () {
var instanceOptions = $.extend({}, options, true); var instanceOptions = $.extend(true, {}, options);
var instance = new Select2($(this), instanceOptions); var instance = new Select2($(this), instanceOptions);
}); });