--- jquery.tipTip_old.js 2011-12-01 14:15:35.000000000 +0100 +++ jquery.tipTip.js 2011-12-07 12:32:32.000000000 +0100 @@ -20,6 +20,9 @@ */ (function($){ + $.tipTipClear = function() { + $("#tiptip_holder").remove(); + } $.fn.tipTip = function(options) { var defaults = { activation: "hover", @@ -31,7 +34,7 @@ fadeIn: 200, fadeOut: 200, attribute: "title", - content: false, // HTML or String to fill TipTIp with + content: false, // HTML String or function to fill TipTIp with enter: function(){}, exit: function(){} }; @@ -51,12 +54,7 @@ return this.each(function(){ var org_elem = $(this); - if(opts.content){ - var org_title = opts.content; - } else { - var org_title = org_elem.attr(opts.attribute); - } - if(org_title != ""){ + if(opts.content || org_elem.attr(opts.attribute)){ if(!opts.content){ org_elem.removeAttr(opts.attribute); //remove original Attribute } @@ -99,6 +97,8 @@ function active_tiptip(){ opts.enter.call(this); + var org_title = typeof opts.content === 'function' ? opts.content.call(org_elem, opts) : opts.content; + org_title = org_title || org_elem.attr(opts.attribute); tiptip_content.html(org_title); tiptip_holder.hide().removeAttr("class").css("margin","0"); tiptip_arrow.removeAttr("style"); @@ -177,7 +177,12 @@ tiptip_holder.css({"margin-left": marg_left+"px", "margin-top": marg_top+"px"}).attr("class","tip"+t_class); if (timeout){ clearTimeout(timeout); } - timeout = setTimeout(function(){ tiptip_holder.stop(true,true).fadeIn(opts.fadeIn); }, opts.delay); + timeout = setTimeout(function() { + tiptip_holder.stop(true,true); + if ($.contains(document.documentElement, org_elem[0])) { + tiptip_holder.fadeIn(opts.fadeIn); + } + }, opts.delay); } function deactive_tiptip(){