Allow programmatic access of Select2
This commit is contained in:
parent
5dd5ad93a6
commit
5dd7df33bb
35
dist/js/select2.amd.full.js
vendored
35
dist/js/select2.amd.full.js
vendored
@ -1528,10 +1528,10 @@ define('select2/core',[
|
||||
});
|
||||
|
||||
this.selection.on('open', function () {
|
||||
self.trigger('open');
|
||||
self.open();
|
||||
});
|
||||
this.selection.on('close', function () {
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
this.selection.on('toggle', function () {
|
||||
self.toggleDropdown();
|
||||
@ -1550,19 +1550,19 @@ define('select2/core',[
|
||||
this.selection.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('selected', function (params) {
|
||||
self.trigger('select', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('results:focus', function (params) {
|
||||
@ -1600,18 +1600,36 @@ define('select2/core',[
|
||||
|
||||
$element.hide();
|
||||
$element.attr('tabindex', '-1');
|
||||
|
||||
$element.data('select2', this);
|
||||
};
|
||||
|
||||
Utils.Extend(Select2, Utils.Observable);
|
||||
|
||||
Select2.prototype.toggleDropdown = function () {
|
||||
if (this.isOpen()) {
|
||||
this.trigger('close');
|
||||
this.close();
|
||||
} else {
|
||||
this.trigger('open');
|
||||
this.open();
|
||||
}
|
||||
};
|
||||
|
||||
Select2.prototype.open = function () {
|
||||
if (this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('open');
|
||||
};
|
||||
|
||||
Select2.prototype.close = function () {
|
||||
if (!this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('close');
|
||||
};
|
||||
|
||||
Select2.prototype.isOpen = function () {
|
||||
return this.$container.hasClass('open');
|
||||
};
|
||||
@ -1644,8 +1662,9 @@ define('jquery.select2',[
|
||||
});
|
||||
} else if (typeof options === 'string') {
|
||||
var instance = this.data('select2');
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
instance[options](arguments.slice(1));
|
||||
instance[options](args);
|
||||
} else {
|
||||
throw new Error('Invalid arguments for Select2: ' + options);
|
||||
}
|
||||
|
35
dist/js/select2.amd.js
vendored
35
dist/js/select2.amd.js
vendored
@ -1528,10 +1528,10 @@ define('select2/core',[
|
||||
});
|
||||
|
||||
this.selection.on('open', function () {
|
||||
self.trigger('open');
|
||||
self.open();
|
||||
});
|
||||
this.selection.on('close', function () {
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
this.selection.on('toggle', function () {
|
||||
self.toggleDropdown();
|
||||
@ -1550,19 +1550,19 @@ define('select2/core',[
|
||||
this.selection.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('selected', function (params) {
|
||||
self.trigger('select', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('results:focus', function (params) {
|
||||
@ -1600,18 +1600,36 @@ define('select2/core',[
|
||||
|
||||
$element.hide();
|
||||
$element.attr('tabindex', '-1');
|
||||
|
||||
$element.data('select2', this);
|
||||
};
|
||||
|
||||
Utils.Extend(Select2, Utils.Observable);
|
||||
|
||||
Select2.prototype.toggleDropdown = function () {
|
||||
if (this.isOpen()) {
|
||||
this.trigger('close');
|
||||
this.close();
|
||||
} else {
|
||||
this.trigger('open');
|
||||
this.open();
|
||||
}
|
||||
};
|
||||
|
||||
Select2.prototype.open = function () {
|
||||
if (this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('open');
|
||||
};
|
||||
|
||||
Select2.prototype.close = function () {
|
||||
if (!this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('close');
|
||||
};
|
||||
|
||||
Select2.prototype.isOpen = function () {
|
||||
return this.$container.hasClass('open');
|
||||
};
|
||||
@ -1644,8 +1662,9 @@ define('jquery.select2',[
|
||||
});
|
||||
} else if (typeof options === 'string') {
|
||||
var instance = this.data('select2');
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
instance[options](arguments.slice(1));
|
||||
instance[options](args);
|
||||
} else {
|
||||
throw new Error('Invalid arguments for Select2: ' + options);
|
||||
}
|
||||
|
35
dist/js/select2.full.js
vendored
35
dist/js/select2.full.js
vendored
@ -11066,10 +11066,10 @@ define('select2/core',[
|
||||
});
|
||||
|
||||
this.selection.on('open', function () {
|
||||
self.trigger('open');
|
||||
self.open();
|
||||
});
|
||||
this.selection.on('close', function () {
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
this.selection.on('toggle', function () {
|
||||
self.toggleDropdown();
|
||||
@ -11088,19 +11088,19 @@ define('select2/core',[
|
||||
this.selection.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('selected', function (params) {
|
||||
self.trigger('select', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('results:focus', function (params) {
|
||||
@ -11138,18 +11138,36 @@ define('select2/core',[
|
||||
|
||||
$element.hide();
|
||||
$element.attr('tabindex', '-1');
|
||||
|
||||
$element.data('select2', this);
|
||||
};
|
||||
|
||||
Utils.Extend(Select2, Utils.Observable);
|
||||
|
||||
Select2.prototype.toggleDropdown = function () {
|
||||
if (this.isOpen()) {
|
||||
this.trigger('close');
|
||||
this.close();
|
||||
} else {
|
||||
this.trigger('open');
|
||||
this.open();
|
||||
}
|
||||
};
|
||||
|
||||
Select2.prototype.open = function () {
|
||||
if (this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('open');
|
||||
};
|
||||
|
||||
Select2.prototype.close = function () {
|
||||
if (!this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('close');
|
||||
};
|
||||
|
||||
Select2.prototype.isOpen = function () {
|
||||
return this.$container.hasClass('open');
|
||||
};
|
||||
@ -11182,8 +11200,9 @@ define('jquery.select2',[
|
||||
});
|
||||
} else if (typeof options === 'string') {
|
||||
var instance = this.data('select2');
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
instance[options](arguments.slice(1));
|
||||
instance[options](args);
|
||||
} else {
|
||||
throw new Error('Invalid arguments for Select2: ' + options);
|
||||
}
|
||||
|
2
dist/js/select2.full.min.js
vendored
2
dist/js/select2.full.min.js
vendored
File diff suppressed because one or more lines are too long
35
dist/js/select2.js
vendored
35
dist/js/select2.js
vendored
@ -1957,10 +1957,10 @@ define('select2/core',[
|
||||
});
|
||||
|
||||
this.selection.on('open', function () {
|
||||
self.trigger('open');
|
||||
self.open();
|
||||
});
|
||||
this.selection.on('close', function () {
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
this.selection.on('toggle', function () {
|
||||
self.toggleDropdown();
|
||||
@ -1979,19 +1979,19 @@ define('select2/core',[
|
||||
this.selection.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('selected', function (params) {
|
||||
self.trigger('select', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('results:focus', function (params) {
|
||||
@ -2029,18 +2029,36 @@ define('select2/core',[
|
||||
|
||||
$element.hide();
|
||||
$element.attr('tabindex', '-1');
|
||||
|
||||
$element.data('select2', this);
|
||||
};
|
||||
|
||||
Utils.Extend(Select2, Utils.Observable);
|
||||
|
||||
Select2.prototype.toggleDropdown = function () {
|
||||
if (this.isOpen()) {
|
||||
this.trigger('close');
|
||||
this.close();
|
||||
} else {
|
||||
this.trigger('open');
|
||||
this.open();
|
||||
}
|
||||
};
|
||||
|
||||
Select2.prototype.open = function () {
|
||||
if (this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('open');
|
||||
};
|
||||
|
||||
Select2.prototype.close = function () {
|
||||
if (!this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('close');
|
||||
};
|
||||
|
||||
Select2.prototype.isOpen = function () {
|
||||
return this.$container.hasClass('open');
|
||||
};
|
||||
@ -2073,8 +2091,9 @@ define('jquery.select2',[
|
||||
});
|
||||
} else if (typeof options === 'string') {
|
||||
var instance = this.data('select2');
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
instance[options](arguments.slice(1));
|
||||
instance[options](args);
|
||||
} else {
|
||||
throw new Error('Invalid arguments for Select2: ' + options);
|
||||
}
|
||||
|
2
dist/js/select2.min.js
vendored
2
dist/js/select2.min.js
vendored
File diff suppressed because one or more lines are too long
@ -211,6 +211,44 @@ $(".js-example-data-array-selected").select2({
|
||||
|
||||
<script type="text/x-example-code" class="js-code-data-disabled">
|
||||
|
||||
</script>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="tagss" class="row">
|
||||
<div class="col-md-4">
|
||||
<h1>Programmatic access</h1>
|
||||
|
||||
<p>
|
||||
Select2 supports methods that allow programmatic control of the
|
||||
component.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<button class="js-programmatic-open btn btn-success">
|
||||
Open
|
||||
</button>
|
||||
|
||||
<button class="js-programmatic-close btn btn-success">
|
||||
Close
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<select class="js-example-programmatic js-states form-control"></select>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<h2>Example code</h2>
|
||||
|
||||
<pre data-fill-from=".js-code-programmatic"></pre>
|
||||
|
||||
<script type="text/javascript" class="js-code-programmatic">
|
||||
var $example = $(".js-example-programmatic");
|
||||
|
||||
$(".js-programmatic-open").on("click", function () { $example.select2("open"); });
|
||||
$(".js-programmatic-close").on("click", function () { $example.select2("close"); });
|
||||
</script>
|
||||
</div>
|
||||
</section>
|
||||
@ -367,6 +405,8 @@ require(["select2/core", "select2/utils"], function (Select2, Utils) {
|
||||
|
||||
$disabledResults.select2();
|
||||
|
||||
$(".js-example-programmatic").select2();
|
||||
|
||||
$tags.select2({
|
||||
tags: true
|
||||
});
|
||||
|
@ -12,8 +12,9 @@ define([
|
||||
});
|
||||
} else if (typeof options === 'string') {
|
||||
var instance = this.data('select2');
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
instance[options](arguments.slice(1));
|
||||
instance[options](args);
|
||||
} else {
|
||||
throw new Error('Invalid arguments for Select2: ' + options);
|
||||
}
|
||||
|
32
src/js/select2/core.js
vendored
32
src/js/select2/core.js
vendored
@ -79,10 +79,10 @@ define([
|
||||
});
|
||||
|
||||
this.selection.on('open', function () {
|
||||
self.trigger('open');
|
||||
self.open();
|
||||
});
|
||||
this.selection.on('close', function () {
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
this.selection.on('toggle', function () {
|
||||
self.toggleDropdown();
|
||||
@ -101,19 +101,19 @@ define([
|
||||
this.selection.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('selected', function (params) {
|
||||
self.trigger('select', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('unselected', function (params) {
|
||||
self.trigger('unselect', params);
|
||||
|
||||
self.trigger('close');
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.results.on('results:focus', function (params) {
|
||||
@ -151,18 +151,36 @@ define([
|
||||
|
||||
$element.hide();
|
||||
$element.attr('tabindex', '-1');
|
||||
|
||||
$element.data('select2', this);
|
||||
};
|
||||
|
||||
Utils.Extend(Select2, Utils.Observable);
|
||||
|
||||
Select2.prototype.toggleDropdown = function () {
|
||||
if (this.isOpen()) {
|
||||
this.trigger('close');
|
||||
this.close();
|
||||
} else {
|
||||
this.trigger('open');
|
||||
this.open();
|
||||
}
|
||||
};
|
||||
|
||||
Select2.prototype.open = function () {
|
||||
if (this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('open');
|
||||
};
|
||||
|
||||
Select2.prototype.close = function () {
|
||||
if (!this.isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.trigger('close');
|
||||
};
|
||||
|
||||
Select2.prototype.isOpen = function () {
|
||||
return this.$container.hasClass('open');
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user