/* jQuery Version: jQuery 1.3.2 Plugin Name: aToolTip V 1.0 Plugin by: Ara Abcarians: http://ara-abcarians.com License: aToolTip is licensed under a Creative Commons Attribution 3.0 Unported License Read more about this license at --> http://creativecommons.org/licenses/by/3.0/ Modified: Murat Purc , 2010-01-28: Position clickable tooltip on right side, remove previous opened tooltip Creates following node: -----------------------

Content close
*/ (function($) { $.fn.aToolTip = function(options) { // setup default settings var defaults = { clickIt: false, closeTipBtn: 'aToolTipCloseBtn', fixed: false, inSpeed: 400, outSpeed: 100, tipContent: '', toolTipClass: 'aToolTip', xOffset: 0, yOffset: 0 }, // This makes it so the users custom options overrides the default ones settings = $.extend({}, defaults, options); return this.each(function() { var obj = $(this); // Decide weather to use a title attr as the tooltip content if (obj.attr('title') && !settings.tipContent) { // set the tooltip content/text to be the obj title attribute var tipContent = obj.attr('title'); } else { // if no title attribute set it to the tipContent option in settings var tipContent = settings.tipContent; } // check if obj has a title attribute and if click feature is off if(tipContent && !settings.clickIt){ // Activate on hover obj.hover(function(el){ obj.attr({title: ''}); $('body').append("

"+ tipContent +"

"); $('.' + settings.toolTipClass).css({ position: 'absolute', display: 'none', zIndex: '50000', top: (obj.offset().top - $('.' + settings.toolTipClass).outerHeight() - settings.yOffset) + 'px', left: (obj.offset().left + obj.outerWidth() + settings.xOffset) + 'px' }) .stop().fadeIn(settings.inSpeed); }, function(){ // Fade out $('.' + settings.toolTipClass).stop().fadeOut(settings.outSpeed, function(){$(this).remove();}); }); } // Follow mouse if fixed is false and click is false if(!settings.fixed && !settings.clickIt){ obj.mousemove(function(el){ $('.' + settings.toolTipClass).css({ top: (el.pageY - $('.' + settings.toolTipClass).outerHeight() - settings.yOffset), left: (el.pageX + settings.xOffset) }) }); } // check if click feature is enabled if(tipContent && settings.clickIt){ // Activate on click obj.click(function(el){ if (!settings.tipContent) { obj.attr({title: ''}); } // $('.' + settings.toolTipClass).remove(); $('.' + settings.toolTipClass).stop().fadeOut(settings.outSpeed, function(){$(this).remove();}); $('body').append("

"+ tipContent +"

close
"); $('.' + settings.toolTipClass).css({ position: 'absolute', display: 'none', zIndex: '50000', // top: (obj.offset().top - $('.' + settings.toolTipClass).outerHeight() - settings.yOffset) + 'px', // left: (obj.offset().left + obj.outerWidth() + settings.xOffset) + 'px' top: (obj.offset().top - settings.yOffset) + 'px', left: (obj.offset().left + obj.outerWidth() + settings.xOffset) + 'px' }) .fadeIn(settings.inSpeed); // Click to close tooltip $('.' + settings.closeTipBtn).click(function(){ $('.' + settings.toolTipClass).fadeOut(settings.outSpeed, function(){$(this).remove();}); return false; }); return false; }); } }); // END: return this // returns the jQuery object to allow for chainability. return this; }; })(jQuery);