From 42099e44610face58172ed0ed27115fb2b84ab50 Mon Sep 17 00:00:00 2001 From: Daniel Owens Date: Wed, 8 May 2013 12:15:44 -0500 Subject: [PATCH] Tooltip: Accept HTMLElement and jQuery objects for the content option Fixes #9278 Closes #983 Closes #1421 --- tests/unit/tooltip/tooltip_options.js | 24 ++++++++++++++++++++++++ ui/tooltip.js | 13 +++++-------- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/tests/unit/tooltip/tooltip_options.js b/tests/unit/tooltip/tooltip_options.js index 17f0a4237..2d49533f2 100644 --- a/tests/unit/tooltip/tooltip_options.js +++ b/tests/unit/tooltip/tooltip_options.js @@ -100,6 +100,30 @@ test( "content: string", function() { }).tooltip( "open" ); }); +test( "content: element", function() { + expect( 1 ); + var content = "

this is a test of the emergency broadcast system.

", + element = $( content )[ 0 ]; + $( "#tooltipped1" ).tooltip({ + content: element, + open: function( event, ui ) { + equal( ui.tooltip.children().html().toLowerCase(), content ); + } + }).tooltip( "open" ); +}); + +test( "content: jQuery", function() { + expect( 1 ); + var content = "

this is a test of the emergency broadcast system.

", + element = $( content ); + $( "#tooltipped1" ).tooltip({ + content: element, + open: function( event, ui ) { + equal( ui.tooltip.children().html().toLowerCase(), content ); + } + }).tooltip( "open" ); +}); + test( "items", function() { expect( 2 ); var event, diff --git a/ui/tooltip.js b/ui/tooltip.js index 7ea1d13ee..85c64f2a0 100644 --- a/ui/tooltip.js +++ b/ui/tooltip.js @@ -208,7 +208,8 @@ return $.widget( "ui.tooltip", { that = this, eventType = event ? event.type : null; - if ( typeof contentOption === "string" ) { + if ( typeof contentOption === "string" || contentOption.nodeType || + contentOption.jquery ) { return this._open( event, target, contentOption ); } @@ -276,13 +277,9 @@ return $.widget( "ui.tooltip", { // JAWS announces deletions even when aria-relevant="additions" // Voiceover will sometimes re-read the entire log region's contents from the beginning this.liveRegion.children().hide(); - if ( content.clone ) { - a11yContent = content.clone(); - a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" ); - } else { - a11yContent = content; - } - $( "
" ).html( a11yContent ).appendTo( this.liveRegion ); + a11yContent = $( "
" ).html( tooltip.find( ".ui-tooltip-content" ).html() ); + a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" ); + a11yContent.appendTo( this.liveRegion ); function position( event ) { positionOption.of = event; -- 2.39.5