mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Calendar: Do not rebuild whole calendar when selecting date
This commit is contained in:
parent
7ac903b076
commit
3cf5308917
@ -99,7 +99,7 @@ return $.widget( "ui.calendar", {
|
|||||||
},
|
},
|
||||||
"mousedown .ui-calendar-calendar button": function( event ) {
|
"mousedown .ui-calendar-calendar button": function( event ) {
|
||||||
this._setOption( "value", new Date( $( event.currentTarget ).data( "timestamp" ) ) );
|
this._setOption( "value", new Date( $( event.currentTarget ).data( "timestamp" ) ) );
|
||||||
this.refresh();
|
this._updateDayElement( "ui-state-active" );
|
||||||
|
|
||||||
// Allow datepicker to handle focus
|
// Allow datepicker to handle focus
|
||||||
if ( this._trigger( "select", event ) !== false ) {
|
if ( this._trigger( "select", event ) !== false ) {
|
||||||
@ -180,25 +180,29 @@ return $.widget( "ui.calendar", {
|
|||||||
|
|
||||||
// Check if the needed day is already present in our grid due
|
// Check if the needed day is already present in our grid due
|
||||||
// to eachDay option changes (eg. other-months demo)
|
// to eachDay option changes (eg. other-months demo)
|
||||||
return !this.grid.find(
|
return !this._getDateElement( this._getDayId( this.date ) ).length;
|
||||||
"#" + $.ui.escapeSelector( this._getDayId( this.date ) )
|
|
||||||
).length;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
_setActiveDescendant: function() {
|
_setActiveDescendant: function() {
|
||||||
|
this.activeDescendant = this._updateDayElement( "ui-state-focus" );
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateDayElement: function( state ) {
|
||||||
var id = this._getDayId( this.date );
|
var id = this._getDayId( this.date );
|
||||||
|
|
||||||
this.grid
|
this.grid
|
||||||
.attr( "aria-activedescendant", id )
|
.attr( "aria-activedescendant", id )
|
||||||
.find( ".ui-state-focus" )
|
.find( "button." + state )
|
||||||
.removeClass( "ui-state-focus" );
|
.removeClass( state );
|
||||||
|
|
||||||
this.activeDescendant = this.grid.find(
|
return this._getDateElement( id ).children( "button" ).addClass( state );
|
||||||
"#" + $.ui.escapeSelector( id ) + " > button"
|
},
|
||||||
).addClass( "ui-state-focus" );
|
|
||||||
|
_getDateElement: function( id ) {
|
||||||
|
return this.grid.find( "#" + $.ui.escapeSelector( id ) );
|
||||||
},
|
},
|
||||||
|
|
||||||
_setLocale: function( locale, dateFormat ) {
|
_setLocale: function( locale, dateFormat ) {
|
||||||
@ -518,7 +522,7 @@ return $.widget( "ui.calendar", {
|
|||||||
refresh: function() {
|
refresh: function() {
|
||||||
this.labels = this.options.labels;
|
this.labels = this.options.labels;
|
||||||
|
|
||||||
// Determine which day gridcell to focus after refresh
|
// Determine which day grid cell to focus after refresh
|
||||||
// TODO: Prevent disabled cells from being focused
|
// TODO: Prevent disabled cells from being focused
|
||||||
if ( this.options.numberOfMonths === 1 ) {
|
if ( this.options.numberOfMonths === 1 ) {
|
||||||
this.element.find( ".ui-calendar-title" ).html( this._buildTitle() );
|
this.element.find( ".ui-calendar-title" ).html( this._buildTitle() );
|
||||||
|
Loading…
Reference in New Issue
Block a user