Skip to content

Commit a60a99e

Browse files
committed
Merge remote branch 'kborchers/bug_7686'
2 parents cd73501 + af76ad1 commit a60a99e

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

ui/jquery.ui.datepicker.js

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -636,10 +636,10 @@ $.extend(Datepicker.prototype, {
636636
return;
637637
var inst = $.datepicker._getInst(input);
638638
if ($.datepicker._curInst && $.datepicker._curInst != inst) {
639-
if ( $.datepicker._datepickerShowing ) {
640-
$.datepicker._triggerOnClose($.datepicker._curInst);
641-
}
642639
$.datepicker._curInst.dpDiv.stop(true, true);
640+
if ( inst && $.datepicker._datepickerShowing ) {
641+
$.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );
642+
}
643643
}
644644
var beforeShow = $.datepicker._get(inst, 'beforeShow');
645645
var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
@@ -790,14 +790,6 @@ $.extend(Datepicker.prototype, {
790790
return [position.left, position.top];
791791
},
792792

793-
/* Trigger custom callback of onClose. */
794-
_triggerOnClose: function(inst) {
795-
var onClose = this._get(inst, 'onClose');
796-
if (onClose)
797-
onClose.apply((inst.input ? inst.input[0] : null),
798-
[(inst.input ? inst.input.val() : ''), inst]);
799-
},
800-
801793
/* Hide the date picker from view.
802794
@param input element - the input field attached to the date picker */
803795
_hideDatepicker: function(input) {
@@ -820,8 +812,11 @@ $.extend(Datepicker.prototype, {
820812
(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
821813
if (!showAnim)
822814
postProcess();
823-
$.datepicker._triggerOnClose(inst);
824815
this._datepickerShowing = false;
816+
var onClose = this._get(inst, 'onClose');
817+
if (onClose)
818+
onClose.apply((inst.input ? inst.input[0] : null),
819+
[(inst.input ? inst.input.val() : ''), inst]);
825820
this._lastInput = null;
826821
if (this._inDialog) {
827822
this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
@@ -843,12 +838,16 @@ $.extend(Datepicker.prototype, {
843838
_checkExternalClick: function(event) {
844839
if (!$.datepicker._curInst)
845840
return;
846-
var $target = $(event.target);
847-
if ($target[0].id != $.datepicker._mainDivId &&
841+
842+
var $target = $(event.target),
843+
inst = $.datepicker._getInst($target[0]);
844+
845+
if ( ( ( $target[0].id != $.datepicker._mainDivId &&
848846
$target.parents('#' + $.datepicker._mainDivId).length == 0 &&
849847
!$target.hasClass($.datepicker.markerClassName) &&
850848
!$target.hasClass($.datepicker._triggerClass) &&
851-
$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
849+
$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||
850+
( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != inst ) )
852851
$.datepicker._hideDatepicker();
853852
},
854853

0 commit comments

Comments
 (0)