@@ -636,10 +636,10 @@ $.extend(Datepicker.prototype, {
636
636
return ;
637
637
var inst = $ . datepicker . _getInst ( input ) ;
638
638
if ( $ . datepicker . _curInst && $ . datepicker . _curInst != inst ) {
639
- if ( $ . datepicker . _datepickerShowing ) {
640
- $ . datepicker . _triggerOnClose ( $ . datepicker . _curInst ) ;
641
- }
642
639
$ . datepicker . _curInst . dpDiv . stop ( true , true ) ;
640
+ if ( inst && $ . datepicker . _datepickerShowing ) {
641
+ $ . datepicker . _hideDatepicker ( $ . datepicker . _curInst . input [ 0 ] ) ;
642
+ }
643
643
}
644
644
var beforeShow = $ . datepicker . _get ( inst , 'beforeShow' ) ;
645
645
var beforeShowSettings = beforeShow ? beforeShow . apply ( input , [ input , inst ] ) : { } ;
@@ -790,14 +790,6 @@ $.extend(Datepicker.prototype, {
790
790
return [ position . left , position . top ] ;
791
791
} ,
792
792
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
-
801
793
/* Hide the date picker from view.
802
794
@param input element - the input field attached to the date picker */
803
795
_hideDatepicker : function ( input ) {
@@ -820,8 +812,11 @@ $.extend(Datepicker.prototype, {
820
812
( showAnim == 'fadeIn' ? 'fadeOut' : 'hide' ) ) ] ( ( showAnim ? duration : null ) , postProcess ) ;
821
813
if ( ! showAnim )
822
814
postProcess ( ) ;
823
- $ . datepicker . _triggerOnClose ( inst ) ;
824
815
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 ] ) ;
825
820
this . _lastInput = null ;
826
821
if ( this . _inDialog ) {
827
822
this . _dialogInput . css ( { position : 'absolute' , left : '0' , top : '-100px' } ) ;
@@ -843,12 +838,16 @@ $.extend(Datepicker.prototype, {
843
838
_checkExternalClick : function ( event ) {
844
839
if ( ! $ . datepicker . _curInst )
845
840
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 &&
848
846
$target . parents ( '#' + $ . datepicker . _mainDivId ) . length == 0 &&
849
847
! $target . hasClass ( $ . datepicker . markerClassName ) &&
850
848
! $target . hasClass ( $ . datepicker . _triggerClass ) &&
851
- $ . datepicker . _datepickerShowing && ! ( $ . datepicker . _inDialog && $ . blockUI ) )
849
+ $ . datepicker . _datepickerShowing && ! ( $ . datepicker . _inDialog && $ . blockUI ) ) ) ||
850
+ ( $target . hasClass ( $ . datepicker . markerClassName ) && $ . datepicker . _curInst != inst ) )
852
851
$ . datepicker . _hideDatepicker ( ) ;
853
852
} ,
854
853
0 commit comments