]> source.dussan.org Git - jquery-ui.git/commitdiff
Calendar: Make sure keydown original event is available
authorFelix Nagel <info@felixnagel.com>
Sun, 22 May 2016 15:19:09 +0000 (17:19 +0200)
committerFelix Nagel <info@felixnagel.com>
Wed, 5 Oct 2016 16:32:10 +0000 (18:32 +0200)
ui/widgets/calendar.js

index 4c9a03545682d6aa6647a32186588775eb63b5ec..805547f753d27d1ddcd43486f83cab65087200dc 100644 (file)
@@ -108,16 +108,7 @@ return $.widget( "ui.calendar", {
                                this.date.adjust( "M", this.options.numberOfMonths );
                                this._updateView();
                        },
-                       "mousedown .ui-calendar-calendar button": function( event ) {
-                               this._setOption( "value", new Date( $( event.currentTarget ).data( "timestamp" ) ) );
-                               this._updateDayElement( "ui-state-active" );
-
-                               // Allow datepicker to handle focus
-                               if ( this._trigger( "select", event ) !== false ) {
-                                       this.activeDescendant.closest( this.grid ).focus();
-                                       event.preventDefault();
-                               }
-                       },
+                       "mousedown .ui-calendar-calendar button": "_select",
                        "mouseenter .ui-calendar-header-buttons button": "_hover",
                        "mouseleave .ui-calendar-header-buttons button": "_hover",
                        "mouseenter .ui-calendar-calendar button": "_hover",
@@ -133,12 +124,25 @@ return $.widget( "ui.calendar", {
                this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
        },
 
+       _select: function( event ) {
+               this._setOption( "value", new Date( $( event.currentTarget ).data( "timestamp" ) ) );
+               this._updateDayElement( "ui-state-active" );
+
+               // Allow datepicker to handle focus
+               if ( this._trigger( "select", event ) !== false ) {
+                       this.activeDescendant.closest( this.grid ).focus();
+                       event.preventDefault();
+               }
+       },
+
        _handleKeydown: function( event ) {
                var pageAltKey = ( event.altKey || event.ctrlKey && event.shiftKey );
 
                switch ( event.keyCode ) {
                case $.ui.keyCode.ENTER:
-                       this.activeDescendant.mousedown();
+                       this._select(
+                               $.Event( event, { currentTarget:  this.activeDescendant[ 0 ] } )
+                       );
                        return;
                case $.ui.keyCode.PAGE_UP:
                        this.date.adjust( pageAltKey ? "Y" : "M", -1 );