Update jQueryUI to include tool tips
|
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 418 B |
|
Before Width: | Height: | Size: 312 B After Width: | Height: | Size: 312 B |
|
Before Width: | Height: | Size: 205 B After Width: | Height: | Size: 205 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 262 B |
|
Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 348 B |
|
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 278 B After Width: | Height: | Size: 278 B |
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 328 B |
@@ -283,6 +283,13 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Tooltip -->
|
||||||
|
<h2 class="demoHeaders">Tooltip</h2>
|
||||||
|
<p id="tooltip">
|
||||||
|
<a href="#" title="That's what this widget is">Tooltips</a> can be attached to any element. When you hover
|
||||||
|
the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<!-- Highlight / Error -->
|
<!-- Highlight / Error -->
|
||||||
<h2 class="demoHeaders">Highlight / Error</h2>
|
<h2 class="demoHeaders">Highlight / Error</h2>
|
||||||
@@ -354,6 +361,8 @@ $( "#menu" ).menu();
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$( "#tooltip" ).tooltip();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*! jQuery UI - v1.11.2 - 2015-01-05
|
/*! jQuery UI - v1.11.2 - 2015-01-12
|
||||||
* http://jqueryui.com
|
* http://jqueryui.com
|
||||||
* Includes: core.css, autocomplete.css, menu.css, theme.css
|
* Includes: core.css, autocomplete.css, menu.css, tooltip.css, theme.css
|
||||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
||||||
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
||||||
|
|
||||||
@@ -145,6 +145,17 @@
|
|||||||
left: auto;
|
left: auto;
|
||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
|
.ui-tooltip {
|
||||||
|
padding: 8px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
max-width: 300px;
|
||||||
|
-webkit-box-shadow: 0 0 5px #aaa;
|
||||||
|
box-shadow: 0 0 5px #aaa;
|
||||||
|
}
|
||||||
|
body .ui-tooltip {
|
||||||
|
border-width: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Component containers
|
/* Component containers
|
||||||
----------------------------------*/
|
----------------------------------*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*! jQuery UI - v1.11.2 - 2015-01-05
|
/*! jQuery UI - v1.11.2 - 2015-01-12
|
||||||
* http://jqueryui.com
|
* http://jqueryui.com
|
||||||
* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js, effect.js
|
* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js, tooltip.js, effect.js
|
||||||
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
||||||
|
|
||||||
(function( factory ) {
|
(function( factory ) {
|
||||||
@@ -2605,6 +2605,452 @@ $.widget( "ui.autocomplete", $.ui.autocomplete, {
|
|||||||
var autocomplete = $.ui.autocomplete;
|
var autocomplete = $.ui.autocomplete;
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* jQuery UI Tooltip 1.11.2
|
||||||
|
* http://jqueryui.com
|
||||||
|
*
|
||||||
|
* Copyright 2014 jQuery Foundation and other contributors
|
||||||
|
* Released under the MIT license.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://api.jqueryui.com/tooltip/
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
var tooltip = $.widget( "ui.tooltip", {
|
||||||
|
version: "1.11.2",
|
||||||
|
options: {
|
||||||
|
content: function() {
|
||||||
|
// support: IE<9, Opera in jQuery <1.7
|
||||||
|
// .text() can't accept undefined, so coerce to a string
|
||||||
|
var title = $( this ).attr( "title" ) || "";
|
||||||
|
// Escape title, since we're going from an attribute to raw HTML
|
||||||
|
return $( "<a>" ).text( title ).html();
|
||||||
|
},
|
||||||
|
hide: true,
|
||||||
|
// Disabled elements have inconsistent behavior across browsers (#8661)
|
||||||
|
items: "[title]:not([disabled])",
|
||||||
|
position: {
|
||||||
|
my: "left top+15",
|
||||||
|
at: "left bottom",
|
||||||
|
collision: "flipfit flip"
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
tooltipClass: null,
|
||||||
|
track: false,
|
||||||
|
|
||||||
|
// callbacks
|
||||||
|
close: null,
|
||||||
|
open: null
|
||||||
|
},
|
||||||
|
|
||||||
|
_addDescribedBy: function( elem, id ) {
|
||||||
|
var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ );
|
||||||
|
describedby.push( id );
|
||||||
|
elem
|
||||||
|
.data( "ui-tooltip-id", id )
|
||||||
|
.attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
|
||||||
|
},
|
||||||
|
|
||||||
|
_removeDescribedBy: function( elem ) {
|
||||||
|
var id = elem.data( "ui-tooltip-id" ),
|
||||||
|
describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ),
|
||||||
|
index = $.inArray( id, describedby );
|
||||||
|
|
||||||
|
if ( index !== -1 ) {
|
||||||
|
describedby.splice( index, 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
elem.removeData( "ui-tooltip-id" );
|
||||||
|
describedby = $.trim( describedby.join( " " ) );
|
||||||
|
if ( describedby ) {
|
||||||
|
elem.attr( "aria-describedby", describedby );
|
||||||
|
} else {
|
||||||
|
elem.removeAttr( "aria-describedby" );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_create: function() {
|
||||||
|
this._on({
|
||||||
|
mouseover: "open",
|
||||||
|
focusin: "open"
|
||||||
|
});
|
||||||
|
|
||||||
|
// IDs of generated tooltips, needed for destroy
|
||||||
|
this.tooltips = {};
|
||||||
|
|
||||||
|
// IDs of parent tooltips where we removed the title attribute
|
||||||
|
this.parents = {};
|
||||||
|
|
||||||
|
if ( this.options.disabled ) {
|
||||||
|
this._disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Append the aria-live region so tooltips announce correctly
|
||||||
|
this.liveRegion = $( "<div>" )
|
||||||
|
.attr({
|
||||||
|
role: "log",
|
||||||
|
"aria-live": "assertive",
|
||||||
|
"aria-relevant": "additions"
|
||||||
|
})
|
||||||
|
.addClass( "ui-helper-hidden-accessible" )
|
||||||
|
.appendTo( this.document[ 0 ].body );
|
||||||
|
},
|
||||||
|
|
||||||
|
_setOption: function( key, value ) {
|
||||||
|
var that = this;
|
||||||
|
|
||||||
|
if ( key === "disabled" ) {
|
||||||
|
this[ value ? "_disable" : "_enable" ]();
|
||||||
|
this.options[ key ] = value;
|
||||||
|
// disable element style changes
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._super( key, value );
|
||||||
|
|
||||||
|
if ( key === "content" ) {
|
||||||
|
$.each( this.tooltips, function( id, tooltipData ) {
|
||||||
|
that._updateContent( tooltipData.element );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_disable: function() {
|
||||||
|
var that = this;
|
||||||
|
|
||||||
|
// close open tooltips
|
||||||
|
$.each( this.tooltips, function( id, tooltipData ) {
|
||||||
|
var event = $.Event( "blur" );
|
||||||
|
event.target = event.currentTarget = tooltipData.element[ 0 ];
|
||||||
|
that.close( event, true );
|
||||||
|
});
|
||||||
|
|
||||||
|
// remove title attributes to prevent native tooltips
|
||||||
|
this.element.find( this.options.items ).addBack().each(function() {
|
||||||
|
var element = $( this );
|
||||||
|
if ( element.is( "[title]" ) ) {
|
||||||
|
element
|
||||||
|
.data( "ui-tooltip-title", element.attr( "title" ) )
|
||||||
|
.removeAttr( "title" );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
_enable: function() {
|
||||||
|
// restore title attributes
|
||||||
|
this.element.find( this.options.items ).addBack().each(function() {
|
||||||
|
var element = $( this );
|
||||||
|
if ( element.data( "ui-tooltip-title" ) ) {
|
||||||
|
element.attr( "title", element.data( "ui-tooltip-title" ) );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
open: function( event ) {
|
||||||
|
var that = this,
|
||||||
|
target = $( event ? event.target : this.element )
|
||||||
|
// we need closest here due to mouseover bubbling,
|
||||||
|
// but always pointing at the same event target
|
||||||
|
.closest( this.options.items );
|
||||||
|
|
||||||
|
// No element to show a tooltip for or the tooltip is already open
|
||||||
|
if ( !target.length || target.data( "ui-tooltip-id" ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( target.attr( "title" ) ) {
|
||||||
|
target.data( "ui-tooltip-title", target.attr( "title" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
target.data( "ui-tooltip-open", true );
|
||||||
|
|
||||||
|
// kill parent tooltips, custom or native, for hover
|
||||||
|
if ( event && event.type === "mouseover" ) {
|
||||||
|
target.parents().each(function() {
|
||||||
|
var parent = $( this ),
|
||||||
|
blurEvent;
|
||||||
|
if ( parent.data( "ui-tooltip-open" ) ) {
|
||||||
|
blurEvent = $.Event( "blur" );
|
||||||
|
blurEvent.target = blurEvent.currentTarget = this;
|
||||||
|
that.close( blurEvent, true );
|
||||||
|
}
|
||||||
|
if ( parent.attr( "title" ) ) {
|
||||||
|
parent.uniqueId();
|
||||||
|
that.parents[ this.id ] = {
|
||||||
|
element: this,
|
||||||
|
title: parent.attr( "title" )
|
||||||
|
};
|
||||||
|
parent.attr( "title", "" );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
this._updateContent( target, event );
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateContent: function( target, event ) {
|
||||||
|
var content,
|
||||||
|
contentOption = this.options.content,
|
||||||
|
that = this,
|
||||||
|
eventType = event ? event.type : null;
|
||||||
|
|
||||||
|
if ( typeof contentOption === "string" ) {
|
||||||
|
return this._open( event, target, contentOption );
|
||||||
|
}
|
||||||
|
|
||||||
|
content = contentOption.call( target[0], function( response ) {
|
||||||
|
// ignore async response if tooltip was closed already
|
||||||
|
if ( !target.data( "ui-tooltip-open" ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// IE may instantly serve a cached response for ajax requests
|
||||||
|
// delay this call to _open so the other call to _open runs first
|
||||||
|
that._delay(function() {
|
||||||
|
// jQuery creates a special event for focusin when it doesn't
|
||||||
|
// exist natively. To improve performance, the native event
|
||||||
|
// object is reused and the type is changed. Therefore, we can't
|
||||||
|
// rely on the type being correct after the event finished
|
||||||
|
// bubbling, so we set it back to the previous value. (#8740)
|
||||||
|
if ( event ) {
|
||||||
|
event.type = eventType;
|
||||||
|
}
|
||||||
|
this._open( event, target, response );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if ( content ) {
|
||||||
|
this._open( event, target, content );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_open: function( event, target, content ) {
|
||||||
|
var tooltipData, tooltip, events, delayedShow, a11yContent,
|
||||||
|
positionOption = $.extend( {}, this.options.position );
|
||||||
|
|
||||||
|
if ( !content ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Content can be updated multiple times. If the tooltip already
|
||||||
|
// exists, then just update the content and bail.
|
||||||
|
tooltipData = this._find( target );
|
||||||
|
if ( tooltipData ) {
|
||||||
|
tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if we have a title, clear it to prevent the native tooltip
|
||||||
|
// we have to check first to avoid defining a title if none exists
|
||||||
|
// (we don't want to cause an element to start matching [title])
|
||||||
|
//
|
||||||
|
// We use removeAttr only for key events, to allow IE to export the correct
|
||||||
|
// accessible attributes. For mouse events, set to empty string to avoid
|
||||||
|
// native tooltip showing up (happens only when removing inside mouseover).
|
||||||
|
if ( target.is( "[title]" ) ) {
|
||||||
|
if ( event && event.type === "mouseover" ) {
|
||||||
|
target.attr( "title", "" );
|
||||||
|
} else {
|
||||||
|
target.removeAttr( "title" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltipData = this._tooltip( target );
|
||||||
|
tooltip = tooltipData.tooltip;
|
||||||
|
this._addDescribedBy( target, tooltip.attr( "id" ) );
|
||||||
|
tooltip.find( ".ui-tooltip-content" ).html( content );
|
||||||
|
|
||||||
|
// Support: Voiceover on OS X, JAWS on IE <= 9
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
$( "<div>" ).html( a11yContent ).appendTo( this.liveRegion );
|
||||||
|
|
||||||
|
function position( event ) {
|
||||||
|
positionOption.of = event;
|
||||||
|
if ( tooltip.is( ":hidden" ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
tooltip.position( positionOption );
|
||||||
|
}
|
||||||
|
if ( this.options.track && event && /^mouse/.test( event.type ) ) {
|
||||||
|
this._on( this.document, {
|
||||||
|
mousemove: position
|
||||||
|
});
|
||||||
|
// trigger once to override element-relative positioning
|
||||||
|
position( event );
|
||||||
|
} else {
|
||||||
|
tooltip.position( $.extend({
|
||||||
|
of: target
|
||||||
|
}, this.options.position ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip.hide();
|
||||||
|
|
||||||
|
this._show( tooltip, this.options.show );
|
||||||
|
// Handle tracking tooltips that are shown with a delay (#8644). As soon
|
||||||
|
// as the tooltip is visible, position the tooltip using the most recent
|
||||||
|
// event.
|
||||||
|
if ( this.options.show && this.options.show.delay ) {
|
||||||
|
delayedShow = this.delayedShow = setInterval(function() {
|
||||||
|
if ( tooltip.is( ":visible" ) ) {
|
||||||
|
position( positionOption.of );
|
||||||
|
clearInterval( delayedShow );
|
||||||
|
}
|
||||||
|
}, $.fx.interval );
|
||||||
|
}
|
||||||
|
|
||||||
|
this._trigger( "open", event, { tooltip: tooltip } );
|
||||||
|
|
||||||
|
events = {
|
||||||
|
keyup: function( event ) {
|
||||||
|
if ( event.keyCode === $.ui.keyCode.ESCAPE ) {
|
||||||
|
var fakeEvent = $.Event(event);
|
||||||
|
fakeEvent.currentTarget = target[0];
|
||||||
|
this.close( fakeEvent, true );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Only bind remove handler for delegated targets. Non-delegated
|
||||||
|
// tooltips will handle this in destroy.
|
||||||
|
if ( target[ 0 ] !== this.element[ 0 ] ) {
|
||||||
|
events.remove = function() {
|
||||||
|
this._removeTooltip( tooltip );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !event || event.type === "mouseover" ) {
|
||||||
|
events.mouseleave = "close";
|
||||||
|
}
|
||||||
|
if ( !event || event.type === "focusin" ) {
|
||||||
|
events.focusout = "close";
|
||||||
|
}
|
||||||
|
this._on( true, target, events );
|
||||||
|
},
|
||||||
|
|
||||||
|
close: function( event ) {
|
||||||
|
var tooltip,
|
||||||
|
that = this,
|
||||||
|
target = $( event ? event.currentTarget : this.element ),
|
||||||
|
tooltipData = this._find( target );
|
||||||
|
|
||||||
|
// The tooltip may already be closed
|
||||||
|
if ( !tooltipData ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip = tooltipData.tooltip;
|
||||||
|
|
||||||
|
// disabling closes the tooltip, so we need to track when we're closing
|
||||||
|
// to avoid an infinite loop in case the tooltip becomes disabled on close
|
||||||
|
if ( tooltipData.closing ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear the interval for delayed tracking tooltips
|
||||||
|
clearInterval( this.delayedShow );
|
||||||
|
|
||||||
|
// only set title if we had one before (see comment in _open())
|
||||||
|
// If the title attribute has changed since open(), don't restore
|
||||||
|
if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) {
|
||||||
|
target.attr( "title", target.data( "ui-tooltip-title" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
this._removeDescribedBy( target );
|
||||||
|
|
||||||
|
tooltipData.hiding = true;
|
||||||
|
tooltip.stop( true );
|
||||||
|
this._hide( tooltip, this.options.hide, function() {
|
||||||
|
that._removeTooltip( $( this ) );
|
||||||
|
});
|
||||||
|
|
||||||
|
target.removeData( "ui-tooltip-open" );
|
||||||
|
this._off( target, "mouseleave focusout keyup" );
|
||||||
|
|
||||||
|
// Remove 'remove' binding only on delegated targets
|
||||||
|
if ( target[ 0 ] !== this.element[ 0 ] ) {
|
||||||
|
this._off( target, "remove" );
|
||||||
|
}
|
||||||
|
this._off( this.document, "mousemove" );
|
||||||
|
|
||||||
|
if ( event && event.type === "mouseleave" ) {
|
||||||
|
$.each( this.parents, function( id, parent ) {
|
||||||
|
$( parent.element ).attr( "title", parent.title );
|
||||||
|
delete that.parents[ id ];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltipData.closing = true;
|
||||||
|
this._trigger( "close", event, { tooltip: tooltip } );
|
||||||
|
if ( !tooltipData.hiding ) {
|
||||||
|
tooltipData.closing = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_tooltip: function( element ) {
|
||||||
|
var tooltip = $( "<div>" )
|
||||||
|
.attr( "role", "tooltip" )
|
||||||
|
.addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " +
|
||||||
|
( this.options.tooltipClass || "" ) ),
|
||||||
|
id = tooltip.uniqueId().attr( "id" );
|
||||||
|
|
||||||
|
$( "<div>" )
|
||||||
|
.addClass( "ui-tooltip-content" )
|
||||||
|
.appendTo( tooltip );
|
||||||
|
|
||||||
|
tooltip.appendTo( this.document[0].body );
|
||||||
|
|
||||||
|
return this.tooltips[ id ] = {
|
||||||
|
element: element,
|
||||||
|
tooltip: tooltip
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
_find: function( target ) {
|
||||||
|
var id = target.data( "ui-tooltip-id" );
|
||||||
|
return id ? this.tooltips[ id ] : null;
|
||||||
|
},
|
||||||
|
|
||||||
|
_removeTooltip: function( tooltip ) {
|
||||||
|
tooltip.remove();
|
||||||
|
delete this.tooltips[ tooltip.attr( "id" ) ];
|
||||||
|
},
|
||||||
|
|
||||||
|
_destroy: function() {
|
||||||
|
var that = this;
|
||||||
|
|
||||||
|
// close open tooltips
|
||||||
|
$.each( this.tooltips, function( id, tooltipData ) {
|
||||||
|
// Delegate to close method to handle common cleanup
|
||||||
|
var event = $.Event( "blur" ),
|
||||||
|
element = tooltipData.element;
|
||||||
|
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" ) ) {
|
||||||
|
// If the title attribute has changed since open(), don't restore
|
||||||
|
if ( !element.attr( "title" ) ) {
|
||||||
|
element.attr( "title", element.data( "ui-tooltip-title" ) );
|
||||||
|
}
|
||||||
|
element.removeData( "ui-tooltip-title" );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.liveRegion.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* jQuery UI Effects 1.11.2
|
* jQuery UI Effects 1.11.2
|
||||||
* http://jqueryui.com
|
* http://jqueryui.com
|
||||||
|
|||||||
@@ -150,3 +150,14 @@
|
|||||||
left: auto;
|
left: auto;
|
||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
|
.ui-tooltip {
|
||||||
|
padding: 8px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
max-width: 300px;
|
||||||
|
-webkit-box-shadow: 0 0 5px #aaa;
|
||||||
|
box-shadow: 0 0 5px #aaa;
|
||||||
|
}
|
||||||
|
body .ui-tooltip {
|
||||||
|
border-width: 2px;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*! jQuery UI - v1.11.2 - 2015-01-05
|
/*! jQuery UI - v1.11.2 - 2015-01-12
|
||||||
* http://jqueryui.com
|
* http://jqueryui.com
|
||||||
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
||||||
|
|
||||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
|
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/*! jQuery UI - v1.11.2 - 2015-01-05
|
/*! jQuery UI - v1.11.2 - 2015-01-12
|
||||||
* http://jqueryui.com
|
* http://jqueryui.com
|
||||||
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
|
||||||
|
|
||||||
|
|||||||