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.module( "datepicker: methods", beforeAfterEach() );
|
||||||
|
|
||||||
QUnit.test( "destroy", function( assert ) {
|
QUnit.test( "destroy", function( assert ) {
|
||||||
assert.expect( 35 );
|
assert.expect( 39 );
|
||||||
var inl,
|
var inl,
|
||||||
inp = testHelper.init( "#inp" ),
|
inp = testHelper.init( "#inp" ),
|
||||||
dp = $( "#ui-datepicker-div" );
|
dp = $( "#ui-datepicker-div" );
|
||||||
@ -21,6 +21,15 @@ QUnit.test( "destroy", function( assert ) {
|
|||||||
assert.equal( dp.css( "display" ), "block", "Datepicker - visible" );
|
assert.equal( dp.css( "display" ), "block", "Datepicker - visible" );
|
||||||
inp.datepicker( "hide" ).datepicker( "destroy" );
|
inp.datepicker( "hide" ).datepicker( "destroy" );
|
||||||
assert.ok( $.datepicker._curInst == null, "Datepicker - destroyed and cleared reference" );
|
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" );
|
inp = testHelper.init( "#inp" );
|
||||||
assert.ok( inp.is( ".hasDatepicker" ), "Default - marker class set" );
|
assert.ok( inp.is( ".hasDatepicker" ), "Default - marker class set" );
|
||||||
|
@ -435,6 +435,7 @@ $.extend( Datepicker.prototype, {
|
|||||||
$target.removeClass( this.markerClassName ).empty();
|
$target.removeClass( this.markerClassName ).empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$.datepicker._hideDatepicker();
|
||||||
if ( datepicker_instActive === inst ) {
|
if ( datepicker_instActive === inst ) {
|
||||||
datepicker_instActive = null;
|
datepicker_instActive = null;
|
||||||
this._curInst = null;
|
this._curInst = null;
|
||||||
|
Loading…
Reference in New Issue
Block a user