mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Datepicker: Hide the UI on destroy
When the datepicker UI is shown and then destroyed programmatically: ```js $( "#datepicker" ).datepicker( "destroy" ); ``` hide the datepicker UI without the need for an explicit user action. Previously, in 1.12 the UI would not disappear immediately but only after the first `mousedown`. In later 1.13 versions, the UI would not disappear at all. Fixes gh-2178 Closes gh-2268
This commit is contained in:
parent
a0c5b12e82
commit
02a6e6bcb0
@ -11,7 +11,7 @@ var beforeAfterEach = testHelper.beforeAfterEach;
|
||||
QUnit.module( "datepicker: methods", beforeAfterEach() );
|
||||
|
||||
QUnit.test( "destroy", function( assert ) {
|
||||
assert.expect( 35 );
|
||||
assert.expect( 39 );
|
||||
var inl,
|
||||
inp = testHelper.init( "#inp" ),
|
||||
dp = $( "#ui-datepicker-div" );
|
||||
@ -21,6 +21,15 @@ QUnit.test( "destroy", function( assert ) {
|
||||
assert.equal( dp.css( "display" ), "block", "Datepicker - visible" );
|
||||
inp.datepicker( "hide" ).datepicker( "destroy" );
|
||||
assert.ok( $.datepicker._curInst == null, "Datepicker - destroyed and cleared reference" );
|
||||
assert.equal( dp.css( "display" ), "none", "Datepicker - absent" );
|
||||
|
||||
// Destroy without manual hiding (ensure datepicker is hidden after calling destroy)
|
||||
inp = testHelper.init( "#inp" );
|
||||
inp.datepicker( "show" );
|
||||
assert.equal( dp.css( "display" ), "block", "Datepicker - visible" );
|
||||
inp.datepicker( "destroy" );
|
||||
assert.ok( $.datepicker._curInst == null, "Datepicker - destroyed and cleared reference" );
|
||||
assert.equal( dp.css( "display" ), "none", "Datepicker - absent" );
|
||||
|
||||
inp = testHelper.init( "#inp" );
|
||||
assert.ok( inp.is( ".hasDatepicker" ), "Default - marker class set" );
|
||||
|
@ -435,6 +435,7 @@ $.extend( Datepicker.prototype, {
|
||||
$target.removeClass( this.markerClassName ).empty();
|
||||
}
|
||||
|
||||
$.datepicker._hideDatepicker();
|
||||
if ( datepicker_instActive === inst ) {
|
||||
datepicker_instActive = null;
|
||||
this._curInst = null;
|
||||
|
Loading…
Reference in New Issue
Block a user