mirror of
https://github.com/jquery/jquery-ui.git
synced 2026-04-20 03:02:41 -04:00
Tooltip: Coding standards.
This commit is contained in:
84
ui/jquery.ui.tooltip.js
vendored
84
ui/jquery.ui.tooltip.js
vendored
@@ -12,7 +12,7 @@
|
||||
* jquery.ui.widget.js
|
||||
* jquery.ui.position.js
|
||||
*/
|
||||
(function($) {
|
||||
(function( $ ) {
|
||||
|
||||
var increments = 0;
|
||||
|
||||
@@ -28,63 +28,68 @@ $.widget("ui.tooltip", {
|
||||
at: "right center"
|
||||
}
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
this._bind( {
|
||||
this._bind({
|
||||
mouseover: "open",
|
||||
focusin: "open"
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
enable: function() {
|
||||
this.options.disabled = false;
|
||||
},
|
||||
|
||||
|
||||
disable: function() {
|
||||
// only set option, disable element style changes
|
||||
this.options.disabled = true;
|
||||
},
|
||||
|
||||
open: function(event) {
|
||||
var target = $(event && event.target || this.element).closest(this.options.items);
|
||||
|
||||
open: function( event ) {
|
||||
var target = $( event ? event.target : this.element ).closest( this.options.items );
|
||||
if ( !target.length ) {
|
||||
return;
|
||||
}
|
||||
var self = this;
|
||||
if ( !target.data("tooltip-title") ) {
|
||||
target.data("tooltip-title", target.attr("title"));
|
||||
|
||||
var that = this;
|
||||
if ( !target.data( "tooltip-title" ) ) {
|
||||
target.data( "tooltip-title", target.attr( "title" ) );
|
||||
}
|
||||
var content = this.options.content.call(target[0], function(response) {
|
||||
var content = this.options.content.call( target[0], function( response ) {
|
||||
// IE may instantly serve a cached response, need to give it a chance to finish with _open before that
|
||||
setTimeout(function() {
|
||||
// when undefined, it got removeAttr, then ignore (ajax response)
|
||||
// intially its an empty string, so not undefined
|
||||
// initially its an empty string, so not undefined
|
||||
// TODO is there a better approach to enable ajax tooltips to have two updates?
|
||||
if (target.attr( "aria-describedby" ) !== undefined) {
|
||||
self._open(event, target, response);
|
||||
if ( target.attr( "aria-describedby" ) !== undefined ) {
|
||||
that._open( event, target, response );
|
||||
}
|
||||
}, 13);
|
||||
}, 13 );
|
||||
});
|
||||
if (content) {
|
||||
self._open(event, target, content);
|
||||
if ( content ) {
|
||||
that._open( event, target, content );
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
_open: function( event, target, content ) {
|
||||
if ( !content )
|
||||
if ( !content ) {
|
||||
return;
|
||||
}
|
||||
|
||||
target.attr("title", "");
|
||||
target.attr( "title", "" );
|
||||
|
||||
if ( this.options.disabled )
|
||||
// TODO: why is this check after we clear the title?
|
||||
if ( this.options.disabled ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// ajaxy tooltip can update an existing one
|
||||
var tooltip = this._find( target );
|
||||
if (!tooltip.length) {
|
||||
if ( !tooltip.length ) {
|
||||
tooltip = this._tooltip();
|
||||
target.attr( "aria-describedby", tooltip.attr( "id" ) );
|
||||
}
|
||||
tooltip.find(".ui-tooltip-content").html( content );
|
||||
tooltip.find( ".ui-tooltip-content" ).html( content );
|
||||
tooltip.position( $.extend({
|
||||
of: target
|
||||
}, this.options.position ) ).hide();
|
||||
@@ -100,36 +105,37 @@ $.widget("ui.tooltip", {
|
||||
click: "close"
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
close: function( event ) {
|
||||
var target = $( event && event.currentTarget || this.element );
|
||||
var target = $( event ? event.currentTarget : this.element );
|
||||
target.attr( "title", target.data( "tooltip-title" ) );
|
||||
|
||||
if ( this.options.disabled )
|
||||
|
||||
if ( this.options.disabled ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var tooltip = this._find( target );
|
||||
target.removeAttr( "aria-describedby" );
|
||||
|
||||
|
||||
tooltip.stop( true );
|
||||
this._hide( tooltip, this.options.hide, function() {
|
||||
$( this ).remove();
|
||||
});
|
||||
|
||||
|
||||
target.unbind( "mouseleave.tooltip blur.tooltip" );
|
||||
|
||||
|
||||
this._trigger( "close", event );
|
||||
},
|
||||
|
||||
_tooltip: function() {
|
||||
var tooltip = $( "<div></div>" )
|
||||
.attr( "id", "ui-tooltip-" + increments++ )
|
||||
.attr( "role", "tooltip" )
|
||||
.addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content" );
|
||||
if (this.options.tooltipClass) {
|
||||
tooltip.addClass(this.options.tooltipClass);
|
||||
}
|
||||
$( "<div></div>" )
|
||||
var tooltip = $( "<div>" )
|
||||
.attr({
|
||||
id: "ui-tooltip-" + increments++,
|
||||
role: "tooltip"
|
||||
})
|
||||
.addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content" +
|
||||
( this.options.tooltipClass || "" ) );
|
||||
$( "<div>" )
|
||||
.addClass( "ui-tooltip-content" )
|
||||
.appendTo( tooltip );
|
||||
tooltip.appendTo( document.body );
|
||||
@@ -144,4 +150,4 @@ $.widget("ui.tooltip", {
|
||||
|
||||
$.ui.tooltip.version = "@VERSION";
|
||||
|
||||
})(jQuery);
|
||||
}( jQuery ) );
|
||||
|
||||
Reference in New Issue
Block a user