mirror of
https://github.com/xdan/datetimepicker.git
synced 2024-11-18 06:24:22 +00:00
Merge pull request #693 from bmalpham8/master
fix onClose call multiple times
This commit is contained in:
commit
af7dbc036b
@ -690,7 +690,7 @@ var datetimepickerFactory = function ($) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
// for locale settings
|
// for locale settings
|
||||||
$.datetimepicker = {
|
$.datetimepicker = {
|
||||||
@ -725,12 +725,12 @@ var datetimepickerFactory = function ($) {
|
|||||||
RFC_1123: 'D, d M Y H:i:s O',
|
RFC_1123: 'D, d M Y H:i:s O',
|
||||||
RSS: 'D, d M Y H:i:s O',
|
RSS: 'D, d M Y H:i:s O',
|
||||||
W3C: 'Y-m-d\TH:i:sP'
|
W3C: 'Y-m-d\TH:i:sP'
|
||||||
}
|
};
|
||||||
|
|
||||||
var isFormatStandard = function(format) {
|
var isFormatStandard = function(format) {
|
||||||
return $.map(standardFormats, function (val) { return val })
|
return $.map(standardFormats, function (val) { return val })
|
||||||
.indexOf(format) === -1 ? false : true;
|
.indexOf(format) === -1 ? false : true;
|
||||||
}
|
};
|
||||||
|
|
||||||
$.extend($.datetimepicker, standardFormats);
|
$.extend($.datetimepicker, standardFormats);
|
||||||
|
|
||||||
@ -951,6 +951,7 @@ var datetimepickerFactory = function ($) {
|
|||||||
ZKEY = 90,
|
ZKEY = 90,
|
||||||
YKEY = 89,
|
YKEY = 89,
|
||||||
ctrlDown = false,
|
ctrlDown = false,
|
||||||
|
isClosed = false,
|
||||||
options = ($.isPlainObject(opt) || !opt) ? $.extend(true, {}, default_options, opt) : $.extend(true, {}, default_options),
|
options = ($.isPlainObject(opt) || !opt) ? $.extend(true, {}, default_options, opt) : $.extend(true, {}, default_options),
|
||||||
|
|
||||||
lazyInitTimer = 0,
|
lazyInitTimer = 0,
|
||||||
@ -1067,7 +1068,7 @@ var datetimepickerFactory = function ($) {
|
|||||||
if(distance > options.touchMovedThreshold) {
|
if(distance > options.touchMovedThreshold) {
|
||||||
this.touchMoved = true;
|
this.touchMoved = true;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
month_picker
|
month_picker
|
||||||
.find('.xdsoft_select')
|
.find('.xdsoft_select')
|
||||||
@ -2225,6 +2226,7 @@ var datetimepickerFactory = function ($) {
|
|||||||
datetimepicker
|
datetimepicker
|
||||||
.on('open.xdsoft', function (event) {
|
.on('open.xdsoft', function (event) {
|
||||||
var onShow = true;
|
var onShow = true;
|
||||||
|
isClosed = false;
|
||||||
if (options.onShow && $.isFunction(options.onShow)) {
|
if (options.onShow && $.isFunction(options.onShow)) {
|
||||||
onShow = options.onShow.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
|
onShow = options.onShow.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
|
||||||
}
|
}
|
||||||
@ -2245,6 +2247,12 @@ var datetimepickerFactory = function ($) {
|
|||||||
})
|
})
|
||||||
.on('close.xdsoft', function (event) {
|
.on('close.xdsoft', function (event) {
|
||||||
var onClose = true;
|
var onClose = true;
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
|
if (isClosed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
month_picker
|
month_picker
|
||||||
.find('.xdsoft_month,.xdsoft_year')
|
.find('.xdsoft_month,.xdsoft_year')
|
||||||
.find('.xdsoft_select')
|
.find('.xdsoft_select')
|
||||||
@ -2255,7 +2263,7 @@ var datetimepickerFactory = function ($) {
|
|||||||
if (onClose !== false && !options.opened && !options.inline) {
|
if (onClose !== false && !options.opened && !options.inline) {
|
||||||
datetimepicker.hide();
|
datetimepicker.hide();
|
||||||
}
|
}
|
||||||
event.stopPropagation();
|
isClosed = true;
|
||||||
})
|
})
|
||||||
.on('toggle.xdsoft', function () {
|
.on('toggle.xdsoft', function () {
|
||||||
if (datetimepicker.is(':visible')) {
|
if (datetimepicker.is(':visible')) {
|
||||||
@ -2384,13 +2392,13 @@ var datetimepickerFactory = function ($) {
|
|||||||
var clipboardData = event.clipboardData || event.originalEvent.clipboardData || window.clipboardData,
|
var clipboardData = event.clipboardData || event.originalEvent.clipboardData || window.clipboardData,
|
||||||
pastedData = clipboardData.getData('text'),
|
pastedData = clipboardData.getData('text'),
|
||||||
val = this.value,
|
val = this.value,
|
||||||
pos = this.selectionStart
|
pos = this.selectionStart;
|
||||||
|
|
||||||
var valueBeforeCursor = val.substr(0, pos);
|
var valueBeforeCursor = val.substr(0, pos);
|
||||||
var valueAfterPaste = val.substr(pos + pastedData.length);
|
var valueAfterPaste = val.substr(pos + pastedData.length);
|
||||||
|
|
||||||
val = valueBeforeCursor + pastedData + valueAfterPaste;
|
val = valueBeforeCursor + pastedData + valueAfterPaste;
|
||||||
val = val.substring(0, options.mask.length)
|
val = val.substring(0, options.mask.length);
|
||||||
pos += pastedData.length;
|
pos += pastedData.length;
|
||||||
|
|
||||||
if (isValidValue(options.mask, val)) {
|
if (isValidValue(options.mask, val)) {
|
||||||
@ -2648,7 +2656,7 @@ var datetimepickerFactory = function ($) {
|
|||||||
define(['jquery', 'jquery-mousewheel'], factory);
|
define(['jquery', 'jquery-mousewheel'], factory);
|
||||||
} else if (typeof exports === 'object') {
|
} else if (typeof exports === 'object') {
|
||||||
// Node/CommonJS style for Browserify
|
// Node/CommonJS style for Browserify
|
||||||
module.exports = factory(require('jquery'));;
|
module.exports = factory(require('jquery'));
|
||||||
} else {
|
} else {
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory(jQuery);
|
factory(jQuery);
|
||||||
|
Loading…
Reference in New Issue
Block a user