aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTJ VanToll <tj.vantoll@gmail.com>2013-11-22 08:55:04 -0500
committerScott González <scott.gonzalez@gmail.com>2015-01-29 17:47:48 -0500
commitcc5a4bc5c88a682b862e0db1a44a9ecd40900c1c (patch)
tree7cdadbb56226833a4e1af3e5392d27c571019d15
parentbfd8f26bb4de432cbf79a507a458a7530ea8c39b (diff)
downloadjquery-ui-cc5a4bc5c88a682b862e0db1a44a9ecd40900c1c.tar.gz
jquery-ui-cc5a4bc5c88a682b862e0db1a44a9ecd40900c1c.zip
Datepicker: Support destroying inline datepickers
-rw-r--r--tests/unit/datepicker/datepicker_core.js3
-rw-r--r--tests/unit/datepicker/datepicker_methods.js32
-rw-r--r--ui/datepicker.js4
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" )