diff --git a/dist/js/select2.amd.full.js b/dist/js/select2.amd.full.js index 14cfebb7..dbdfa183 100644 --- a/dist/js/select2.amd.full.js +++ b/dist/js/select2.amd.full.js @@ -673,6 +673,7 @@ define('select2/core',[ this.data = new this.options.dataAdapter($element, this.options); var $container = this.render(); + this.$container = $container; $container.insertAfter(this.$element); @@ -716,18 +717,26 @@ define('select2/core',[ }); this.selection.on("toggle", function () { - $container.toggleClass("open"); + self.toggleDropdown(); }); this.results.on("selected", function (params) { self.trigger("select", params); - $container.removeClass("open"); + self.trigger("close"); }); this.results.on("unselected", function (params) { self.trigger("unselect", params); + self.trigger("close"); + }); + + this.on("open", function () { + $container.addClass("open"); + }); + + this.on("close", function () { $container.removeClass("open"); }); @@ -750,6 +759,14 @@ define('select2/core',[ Utils.Extend(Select2, Utils.Observable); + Select2.prototype.toggleDropdown = function () { + if (this.$container.hasClass("open")) { + this.trigger("close"); + } else { + this.trigger("open"); + } + } + Select2.prototype.render = function () { var $container = $( '' + diff --git a/dist/js/select2.amd.js b/dist/js/select2.amd.js index 14cfebb7..dbdfa183 100644 --- a/dist/js/select2.amd.js +++ b/dist/js/select2.amd.js @@ -673,6 +673,7 @@ define('select2/core',[ this.data = new this.options.dataAdapter($element, this.options); var $container = this.render(); + this.$container = $container; $container.insertAfter(this.$element); @@ -716,18 +717,26 @@ define('select2/core',[ }); this.selection.on("toggle", function () { - $container.toggleClass("open"); + self.toggleDropdown(); }); this.results.on("selected", function (params) { self.trigger("select", params); - $container.removeClass("open"); + self.trigger("close"); }); this.results.on("unselected", function (params) { self.trigger("unselect", params); + self.trigger("close"); + }); + + this.on("open", function () { + $container.addClass("open"); + }); + + this.on("close", function () { $container.removeClass("open"); }); @@ -750,6 +759,14 @@ define('select2/core',[ Utils.Extend(Select2, Utils.Observable); + Select2.prototype.toggleDropdown = function () { + if (this.$container.hasClass("open")) { + this.trigger("close"); + } else { + this.trigger("open"); + } + } + Select2.prototype.render = function () { var $container = $( '' + diff --git a/dist/js/select2.full.js b/dist/js/select2.full.js index 50aaf97b..519a581b 100644 --- a/dist/js/select2.full.js +++ b/dist/js/select2.full.js @@ -10210,6 +10210,7 @@ define('select2/core',[ this.data = new this.options.dataAdapter($element, this.options); var $container = this.render(); + this.$container = $container; $container.insertAfter(this.$element); @@ -10253,18 +10254,26 @@ define('select2/core',[ }); this.selection.on("toggle", function () { - $container.toggleClass("open"); + self.toggleDropdown(); }); this.results.on("selected", function (params) { self.trigger("select", params); - $container.removeClass("open"); + self.trigger("close"); }); this.results.on("unselected", function (params) { self.trigger("unselect", params); + self.trigger("close"); + }); + + this.on("open", function () { + $container.addClass("open"); + }); + + this.on("close", function () { $container.removeClass("open"); }); @@ -10287,6 +10296,14 @@ define('select2/core',[ Utils.Extend(Select2, Utils.Observable); + Select2.prototype.toggleDropdown = function () { + if (this.$container.hasClass("open")) { + this.trigger("close"); + } else { + this.trigger("open"); + } + } + Select2.prototype.render = function () { var $container = $( '' + diff --git a/dist/js/select2.js b/dist/js/select2.js index 334e6b68..7056d83f 100644 --- a/dist/js/select2.js +++ b/dist/js/select2.js @@ -1101,6 +1101,7 @@ define('select2/core',[ this.data = new this.options.dataAdapter($element, this.options); var $container = this.render(); + this.$container = $container; $container.insertAfter(this.$element); @@ -1144,18 +1145,26 @@ define('select2/core',[ }); this.selection.on("toggle", function () { - $container.toggleClass("open"); + self.toggleDropdown(); }); this.results.on("selected", function (params) { self.trigger("select", params); - $container.removeClass("open"); + self.trigger("close"); }); this.results.on("unselected", function (params) { self.trigger("unselect", params); + self.trigger("close"); + }); + + this.on("open", function () { + $container.addClass("open"); + }); + + this.on("close", function () { $container.removeClass("open"); }); @@ -1178,6 +1187,14 @@ define('select2/core',[ Utils.Extend(Select2, Utils.Observable); + Select2.prototype.toggleDropdown = function () { + if (this.$container.hasClass("open")) { + this.trigger("close"); + } else { + this.trigger("open"); + } + } + Select2.prototype.render = function () { var $container = $( '' + diff --git a/src/js/select2/core.js b/src/js/select2/core.js index 8d0081c4..e389db07 100644 --- a/src/js/select2/core.js +++ b/src/js/select2/core.js @@ -19,6 +19,7 @@ define([ this.data = new this.options.dataAdapter($element, this.options); var $container = this.render(); + this.$container = $container; $container.insertAfter(this.$element); @@ -62,18 +63,26 @@ define([ }); this.selection.on("toggle", function () { - $container.toggleClass("open"); + self.toggleDropdown(); }); this.results.on("selected", function (params) { self.trigger("select", params); - $container.removeClass("open"); + self.trigger("close"); }); this.results.on("unselected", function (params) { self.trigger("unselect", params); + self.trigger("close"); + }); + + this.on("open", function () { + $container.addClass("open"); + }); + + this.on("close", function () { $container.removeClass("open"); }); @@ -96,6 +105,14 @@ define([ Utils.Extend(Select2, Utils.Observable); + Select2.prototype.toggleDropdown = function () { + if (this.$container.hasClass("open")) { + this.trigger("close"); + } else { + this.trigger("open"); + } + } + Select2.prototype.render = function () { var $container = $( '' +