@@ -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 ] ) : { } ;
@@ -788,14 +788,6 @@ $.extend(Datepicker.prototype, {
788
788
return [ position . left , position . top ] ;
789
789
} ,
790
790
791
- /* Trigger custom callback of onClose. */
792
- _triggerOnClose : function ( inst ) {
793
- var onClose = this . _get ( inst , 'onClose' ) ;
794
- if ( onClose )
795
- onClose . apply ( ( inst . input ? inst . input [ 0 ] : null ) ,
796
- [ ( inst . input ? inst . input . val ( ) : '' ) , inst ] ) ;
797
- } ,
798
-
799
791
/* Hide the date picker from view.
800
792
@param input element - the input field attached to the date picker */
801
793
_hideDatepicker : function ( input ) {
@@ -816,8 +808,11 @@ $.extend(Datepicker.prototype, {
816
808
( showAnim == 'fadeIn' ? 'fadeOut' : 'hide' ) ) ] ( ( showAnim ? duration : null ) , postProcess ) ;
817
809
if ( ! showAnim )
818
810
postProcess ( ) ;
819
- $ . datepicker . _triggerOnClose ( inst ) ;
820
811
this . _datepickerShowing = false ;
812
+ var onClose = this . _get ( inst , 'onClose' ) ;
813
+ if ( onClose )
814
+ onClose . apply ( ( inst . input ? inst . input [ 0 ] : null ) ,
815
+ [ ( inst . input ? inst . input . val ( ) : '' ) , inst ] ) ;
821
816
this . _lastInput = null ;
822
817
if ( this . _inDialog ) {
823
818
this . _dialogInput . css ( { position : 'absolute' , left : '0' , top : '-100px' } ) ;
@@ -839,12 +834,16 @@ $.extend(Datepicker.prototype, {
839
834
_checkExternalClick : function ( event ) {
840
835
if ( ! $ . datepicker . _curInst )
841
836
return ;
842
- var $target = $ ( event . target ) ;
843
- if ( $target [ 0 ] . id != $ . datepicker . _mainDivId &&
837
+
838
+ var $target = $ ( event . target ) ,
839
+ inst = $ . datepicker . _getInst ( $target [ 0 ] ) ;
840
+
841
+ if ( ( ( $target [ 0 ] . id != $ . datepicker . _mainDivId &&
844
842
$target . parents ( '#' + $ . datepicker . _mainDivId ) . length == 0 &&
845
843
! $target . hasClass ( $ . datepicker . markerClassName ) &&
846
844
! $target . hasClass ( $ . datepicker . _triggerClass ) &&
847
- $ . datepicker . _datepickerShowing && ! ( $ . datepicker . _inDialog && $ . blockUI ) )
845
+ $ . datepicker . _datepickerShowing && ! ( $ . datepicker . _inDialog && $ . blockUI ) ) ) ||
846
+ ( $target . hasClass ( $ . datepicker . markerClassName ) && $ . datepicker . _curInst != inst ) )
848
847
$ . datepicker . _hideDatepicker ( ) ;
849
848
} ,
850
849
0 commit comments