Set up the click handler for closing
Now the dropdown will automatically be closed when the user clicks outside of it.
This commit is contained in:
parent
f8ca597f02
commit
130358e8ae
24
dist/js/select2.amd.full.js
vendored
24
dist/js/select2.amd.full.js
vendored
@ -1669,7 +1669,7 @@ define('select2/core',[
|
||||
// Bind the container to all of the adapters
|
||||
this._bindAdapters();
|
||||
|
||||
// Register any DOM event handler
|
||||
// Register any DOM event handlers
|
||||
this._registerDomEvents();
|
||||
|
||||
// Register any internal event handlers
|
||||
@ -1746,6 +1746,26 @@ define('select2/core',[
|
||||
Select2.prototype._registerDomEvents = function () {
|
||||
var self = this;
|
||||
|
||||
$(document.body).on('mousedown', function (e) {
|
||||
var $target = $(e.target);
|
||||
|
||||
var $select = $target.closest('.select2');
|
||||
|
||||
var $all = $('.select2.open');
|
||||
|
||||
$all.each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
if (this == $select[0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
var $element = $this.data('element');
|
||||
|
||||
$element.select2('close');
|
||||
});
|
||||
});
|
||||
|
||||
this.$element.on('change', function () {
|
||||
self.data.current(function (data) {
|
||||
self.trigger('selection:update', {
|
||||
@ -1864,6 +1884,8 @@ define('select2/core',[
|
||||
|
||||
this.$container = $container;
|
||||
|
||||
$container.data('element', this.$element);
|
||||
|
||||
return $container;
|
||||
};
|
||||
|
||||
|
24
dist/js/select2.amd.js
vendored
24
dist/js/select2.amd.js
vendored
@ -1669,7 +1669,7 @@ define('select2/core',[
|
||||
// Bind the container to all of the adapters
|
||||
this._bindAdapters();
|
||||
|
||||
// Register any DOM event handler
|
||||
// Register any DOM event handlers
|
||||
this._registerDomEvents();
|
||||
|
||||
// Register any internal event handlers
|
||||
@ -1746,6 +1746,26 @@ define('select2/core',[
|
||||
Select2.prototype._registerDomEvents = function () {
|
||||
var self = this;
|
||||
|
||||
$(document.body).on('mousedown', function (e) {
|
||||
var $target = $(e.target);
|
||||
|
||||
var $select = $target.closest('.select2');
|
||||
|
||||
var $all = $('.select2.open');
|
||||
|
||||
$all.each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
if (this == $select[0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
var $element = $this.data('element');
|
||||
|
||||
$element.select2('close');
|
||||
});
|
||||
});
|
||||
|
||||
this.$element.on('change', function () {
|
||||
self.data.current(function (data) {
|
||||
self.trigger('selection:update', {
|
||||
@ -1864,6 +1884,8 @@ define('select2/core',[
|
||||
|
||||
this.$container = $container;
|
||||
|
||||
$container.data('element', this.$element);
|
||||
|
||||
return $container;
|
||||
};
|
||||
|
||||
|
24
dist/js/select2.full.js
vendored
24
dist/js/select2.full.js
vendored
@ -11204,7 +11204,7 @@ define('select2/core',[
|
||||
// Bind the container to all of the adapters
|
||||
this._bindAdapters();
|
||||
|
||||
// Register any DOM event handler
|
||||
// Register any DOM event handlers
|
||||
this._registerDomEvents();
|
||||
|
||||
// Register any internal event handlers
|
||||
@ -11281,6 +11281,26 @@ define('select2/core',[
|
||||
Select2.prototype._registerDomEvents = function () {
|
||||
var self = this;
|
||||
|
||||
$(document.body).on('mousedown', function (e) {
|
||||
var $target = $(e.target);
|
||||
|
||||
var $select = $target.closest('.select2');
|
||||
|
||||
var $all = $('.select2.open');
|
||||
|
||||
$all.each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
if (this == $select[0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
var $element = $this.data('element');
|
||||
|
||||
$element.select2('close');
|
||||
});
|
||||
});
|
||||
|
||||
this.$element.on('change', function () {
|
||||
self.data.current(function (data) {
|
||||
self.trigger('selection:update', {
|
||||
@ -11399,6 +11419,8 @@ define('select2/core',[
|
||||
|
||||
this.$container = $container;
|
||||
|
||||
$container.data('element', this.$element);
|
||||
|
||||
return $container;
|
||||
};
|
||||
|
||||
|
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
24
dist/js/select2.js
vendored
24
dist/js/select2.js
vendored
@ -2097,7 +2097,7 @@ define('select2/core',[
|
||||
// Bind the container to all of the adapters
|
||||
this._bindAdapters();
|
||||
|
||||
// Register any DOM event handler
|
||||
// Register any DOM event handlers
|
||||
this._registerDomEvents();
|
||||
|
||||
// Register any internal event handlers
|
||||
@ -2174,6 +2174,26 @@ define('select2/core',[
|
||||
Select2.prototype._registerDomEvents = function () {
|
||||
var self = this;
|
||||
|
||||
$(document.body).on('mousedown', function (e) {
|
||||
var $target = $(e.target);
|
||||
|
||||
var $select = $target.closest('.select2');
|
||||
|
||||
var $all = $('.select2.open');
|
||||
|
||||
$all.each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
if (this == $select[0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
var $element = $this.data('element');
|
||||
|
||||
$element.select2('close');
|
||||
});
|
||||
});
|
||||
|
||||
this.$element.on('change', function () {
|
||||
self.data.current(function (data) {
|
||||
self.trigger('selection:update', {
|
||||
@ -2292,6 +2312,8 @@ define('select2/core',[
|
||||
|
||||
this.$container = $container;
|
||||
|
||||
$container.data('element', this.$element);
|
||||
|
||||
return $container;
|
||||
};
|
||||
|
||||
|
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
22
src/js/select2/core.js
vendored
22
src/js/select2/core.js
vendored
@ -128,6 +128,26 @@ define([
|
||||
Select2.prototype._registerDomEvents = function () {
|
||||
var self = this;
|
||||
|
||||
$(document.body).on('mousedown', function (e) {
|
||||
var $target = $(e.target);
|
||||
|
||||
var $select = $target.closest('.select2');
|
||||
|
||||
var $all = $('.select2.open');
|
||||
|
||||
$all.each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
if (this == $select[0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
var $element = $this.data('element');
|
||||
|
||||
$element.select2('close');
|
||||
});
|
||||
});
|
||||
|
||||
this.$element.on('change', function () {
|
||||
self.data.current(function (data) {
|
||||
self.trigger('selection:update', {
|
||||
@ -246,6 +266,8 @@ define([
|
||||
|
||||
this.$container = $container;
|
||||
|
||||
$container.data('element', this.$element);
|
||||
|
||||
return $container;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user