Exposes select2 instance via .data('select2')
This commit is contained in:
parent
5424333425
commit
6d0ecbc912
4
src/js/select2/core.js
vendored
4
src/js/select2/core.js
vendored
@ -84,6 +84,9 @@ define([
|
|||||||
this._syncAttributes();
|
this._syncAttributes();
|
||||||
|
|
||||||
Utils.StoreData($element[0], 'select2', this);
|
Utils.StoreData($element[0], 'select2', this);
|
||||||
|
|
||||||
|
// Ensure backwards compatibility with $element.data('select2').
|
||||||
|
$element.data('select2', this);
|
||||||
};
|
};
|
||||||
|
|
||||||
Utils.Extend(Select2, Utils.Observable);
|
Utils.Extend(Select2, Utils.Observable);
|
||||||
@ -579,6 +582,7 @@ define([
|
|||||||
this.$element.removeClass('select2-hidden-accessible');
|
this.$element.removeClass('select2-hidden-accessible');
|
||||||
this.$element.attr('aria-hidden', 'false');
|
this.$element.attr('aria-hidden', 'false');
|
||||||
Utils.RemoveData(this.$element[0]);
|
Utils.RemoveData(this.$element[0]);
|
||||||
|
this.$element.removeData('select2');
|
||||||
|
|
||||||
this.dataAdapter.destroy();
|
this.dataAdapter.destroy();
|
||||||
this.selection.destroy();
|
this.selection.destroy();
|
||||||
|
39
tests/integration/jquery-calls.js
vendored
39
tests/integration/jquery-calls.js
vendored
@ -1,5 +1,7 @@
|
|||||||
module('select2(val)');
|
module('select2(val)');
|
||||||
|
|
||||||
|
var Utils = require('select2/utils');
|
||||||
|
|
||||||
test('multiple elements with arguments works', function (assert) {
|
test('multiple elements with arguments works', function (assert) {
|
||||||
var $ = require('jquery');
|
var $ = require('jquery');
|
||||||
require('jquery.select2');
|
require('jquery.select2');
|
||||||
@ -56,4 +58,41 @@ test('initializes when jQuery $.data contains' +
|
|||||||
'3',
|
'3',
|
||||||
'The option value should be pulled correctly'
|
'The option value should be pulled correctly'
|
||||||
);
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('$element.data returns instance and options correctly',
|
||||||
|
function (assert) {
|
||||||
|
var $ = require('jquery');
|
||||||
|
require('jquery.select2');
|
||||||
|
|
||||||
|
var $select = $(
|
||||||
|
'<select>' +
|
||||||
|
'<option value="1">One</option>' +
|
||||||
|
'<option value="2">Two</option>' +
|
||||||
|
'<option value="3" selected>Three</option>' +
|
||||||
|
'</select>'
|
||||||
|
);
|
||||||
|
|
||||||
|
// Initialize.
|
||||||
|
$select.select2({maximumSelectionLength: 2, multiple: true});
|
||||||
|
|
||||||
|
assert.equal(
|
||||||
|
$select.val(),
|
||||||
|
'3',
|
||||||
|
'Only 1 option should be pulled.'
|
||||||
|
);
|
||||||
|
|
||||||
|
// Try to resolve instance via .data('select2').
|
||||||
|
var $instance = $select.data('select2');
|
||||||
|
assert.ok($instance);
|
||||||
|
assert.ok($instance.options);
|
||||||
|
|
||||||
|
// Ensure $select.data('select2') is the same instance
|
||||||
|
// created by .select2()
|
||||||
|
assert.equal($instance, Utils.GetData($instance.$element[0],
|
||||||
|
'select2'));
|
||||||
|
|
||||||
|
// Ensure initialized property matches.
|
||||||
|
assert.equal($instance.options.options.maximumSelectionLength,
|
||||||
|
2);
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user