module( "tooltip: methods" );
test( "destroy", function() {
- expect( 2 );
+ expect( 3 );
+ var element = $( "#tooltipped1" );
+
domEqual( "#tooltipped1", function() {
- $( "#tooltipped1" ).tooltip().tooltip( "destroy" );
+ element.tooltip().tooltip( "destroy" );
});
// make sure that open tooltips are removed on destroy
- $( "#tooltipped1" ).tooltip().tooltip( "open" ).tooltip( "destroy" );
+ domEqual( "#tooltipped1", function() {
+ element
+ .tooltip()
+ .tooltip( "open", $.Event( "mouseover", { target: element[0] }) )
+ .tooltip( "destroy" );
+ });
equal( $( ".ui-tooltip" ).length, 0 );
});
},
_destroy: function() {
- $.each( this.tooltips, function( id ) {
+ var that = this;
+
+ // close open tooltips
+ $.each( this.tooltips, function( id, element ) {
+ // Delegate to close method to handle common cleanup
+ var event = $.Event( "blur" );
+ event.target = event.currentTarget = element[0];
+ that.close( event, true );
+
+ // Remove immediately; destroying an open tooltip doesn't use the
+ // hide animation
$( "#" + id ).remove();
+
+ // Restore the title
+ if ( element.data( "ui-tooltip-title" ) ) {
+ element.attr( "title", element.data( "ui-tooltip-title" ) );
+ element.removeData( "ui-tooltip-title" );
+ }
});
}
});