Skip to content
This repository was archived by the owner on Feb 14, 2019. It is now read-only.

Commit df4d49c

Browse files
committed
Merge pull request #424 from ETroll/master
Fixed memory leak where a mousedown event retained detached dom forever
2 parents 4b437a4 + 70f1222 commit df4d49c

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

js/bootstrap-datetimepicker.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@
108108

109109
this._attachEvents();
110110

111+
this.clickedOutside = function (e) {
112+
// Clicked outside the datetimepicker, hide it
113+
if ($(e.target).closest('.datetimepicker').length === 0) {
114+
that.hide();
115+
}
116+
}
117+
111118
this.formatViewType = 'datetime';
112119
if ('formatViewType' in options) {
113120
this.formatViewType = options.formatViewType;
@@ -211,12 +218,8 @@
211218
var selector = this.bootcssVer === 3 ? '.prev span, .next span' : '.prev i, .next i';
212219
this.picker.find(selector).toggleClass(this.icons.leftArrow + ' ' + this.icons.rightArrow);
213220
}
214-
$(document).on('mousedown', function (e) {
215-
// Clicked outside the datetimepicker, hide it
216-
if ($(e.target).closest('.datetimepicker').length === 0) {
217-
that.hide();
218-
}
219-
});
221+
222+
$(document).on('mousedown', this.clickedOutside);
220223

221224
this.autoclose = false;
222225
if ('autoclose' in options) {
@@ -362,6 +365,7 @@
362365

363366
remove: function () {
364367
this._detachEvents();
368+
$(document).off('mousedown', this.clickedOutside);
365369
this.picker.remove();
366370
delete this.picker;
367371
delete this.element.data().datetimepicker;

0 commit comments

Comments
 (0)