diff options
author | TJ VanToll <tj.vantoll@gmail.com> | 2013-11-22 08:55:04 -0500 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2015-01-29 17:47:48 -0500 |
commit | cc5a4bc5c88a682b862e0db1a44a9ecd40900c1c (patch) | |
tree | 7cdadbb56226833a4e1af3e5392d27c571019d15 | |
parent | bfd8f26bb4de432cbf79a507a458a7530ea8c39b (diff) | |
download | jquery-ui-cc5a4bc5c88a682b862e0db1a44a9ecd40900c1c.tar.gz jquery-ui-cc5a4bc5c88a682b862e0db1a44a9ecd40900c1c.zip |
Datepicker: Support destroying inline datepickers
-rw-r--r-- | tests/unit/datepicker/datepicker_core.js | 3 | ||||
-rw-r--r-- | tests/unit/datepicker/datepicker_methods.js | 32 | ||||
-rw-r--r-- | ui/datepicker.js | 4 |
3 files changed, 18 insertions, 21 deletions
diff --git a/tests/unit/datepicker/datepicker_core.js b/tests/unit/datepicker/datepicker_core.js index cd1a64939..1e3ec1fb8 100644 --- a/tests/unit/datepicker/datepicker_core.js +++ b/tests/unit/datepicker/datepicker_core.js @@ -188,9 +188,6 @@ asyncTest( "baseStructure", function() { inl.datepicker( "destroy" ); - // TODO: Calling destroy() on inline pickers currently does not work. - inl.empty(); - step7(); } diff --git a/tests/unit/datepicker/datepicker_methods.js b/tests/unit/datepicker/datepicker_methods.js index e00f88644..e204b8045 100644 --- a/tests/unit/datepicker/datepicker_methods.js +++ b/tests/unit/datepicker/datepicker_methods.js @@ -3,25 +3,23 @@ module( "datepicker: methods" ); test( "destroy", function() { - expect( 9 ); - var inl, - inp = TestHelpers.datepicker.init( "#datepicker" ); + expect( 10 ); + var input = $( "#datepicker" ).datepicker(), + inline = $( "#inline" ).datepicker(); - ok( inp.datepicker( "instance" ), "instance created" ); - ok( inp.attr( "aria-owns" ), "aria-owns attribute added" ); - ok( inp.attr( "aria-haspopup" ), "aria-haspopup attribute added" ); - inp.datepicker( "destroy" ); - ok( !inp.datepicker( "instance" ), "instance removed" ); - ok( !inp.attr( "aria-owns" ), "aria-owns attribute removed" ); - ok( !inp.attr( "aria-haspopup" ), "aria-haspopup attribute removed" ); + ok( input.datepicker( "instance" ), "instance created" ); + ok( input.attr( "aria-owns" ), "aria-owns attribute added" ); + ok( input.attr( "aria-haspopup" ), "aria-haspopup attribute added" ); + input.datepicker( "destroy" ); + ok( !input.datepicker( "instance" ), "instance removed" ); + ok( !input.attr( "aria-owns" ), "aria-owns attribute removed" ); + ok( !input.attr( "aria-haspopup" ), "aria-haspopup attribute removed" ); - inl = TestHelpers.datepicker.init( "#inline" ); - ok( inl.datepicker( "instance" ), "instance created" ); - ok( inl.children().length > 0, "inline datepicker has children" ); - inl.datepicker( "destroy" ); - ok( !inl.datepicker( "instance" ), "instance removed" ); - // TODO: Destroying inline datepickers currently does not work. - // ok( inl.children().length === 0, "inline picker no longer has children" ); + ok( inline.datepicker( "instance" ), "instance created" ); + ok( inline.children().length > 0, "inline datepicker has children" ); + inline.datepicker( "destroy" ); + ok( !inline.datepicker( "instance" ), "instance removed" ); + ok( inline.children().length === 0, "inline picker no longer has children" ); }); test( "enable / disable", function() { diff --git a/ui/datepicker.js b/ui/datepicker.js index abb18a44b..9d8813a29 100644 --- a/ui/datepicker.js +++ b/ui/datepicker.js @@ -610,7 +610,9 @@ $.widget( "ui.datepicker", { }); }, _destroy: function() { - if ( !this.inline ) { + if ( this.inline ) { + this.picker.empty(); + } else { this.picker.remove(); this.element .removeAttr( "aria-haspopup" ) |