From c14eab9c695ea19cfef9cfaf75c0a7e1b85068ed Mon Sep 17 00:00:00 2001 From: louisameline Date: Thu, 31 Oct 2013 13:57:57 +0100 Subject: [PATCH] Fixed functionInit and broken minified version, changed version to 2.2.3 (last before the refactored version) --- bower.json | 2 +- js/jquery.tooltipster.js | 157 +++++++++++++++++------------------ js/jquery.tooltipster.min.js | 2 +- tooltipster.jquery.json | 2 +- 4 files changed, 78 insertions(+), 85 deletions(-) diff --git a/bower.json b/bower.json index 07a2403..aa43bf5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "tooltipster", - "version": "2.2.1", + "version": "2.2.3", "main": ["js/jquery.tooltipster.min.js", "css/tooltipster.css"], "dependencies": { "jquery": ">=1.4" diff --git a/js/jquery.tooltipster.js b/js/jquery.tooltipster.js index b8a6f72..0d9ed44 100644 --- a/js/jquery.tooltipster.js +++ b/js/jquery.tooltipster.js @@ -1,6 +1,6 @@ /* -Tooltipster 2.2.1 | 10/29/13 +Tooltipster 2.2.3 | 10/29/13 A rockin' custom tooltip jQuery plugin Developed by Caleb Jacob uner the MIT license http://opensource.org/licenses/MIT @@ -20,9 +20,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI delay: 200, fixedWidth: 0, maxWidth: 0, - functionInit: function(origin, content, continueInit) { - continueInit(); - }, + functionInit: function(origin, content) {}, functionBefore: function(origin, continueTooltip) { continueTooltip(); }, @@ -111,6 +109,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI if (run) { // first, strip the title off of the element and set it as a data attribute to prevent the default tooltips from popping up var tooltipsterContent = $.trim(object.options.content).length > 0 ? object.options.content : $this.attr('title'); + + var c = object.options.functionInit($this, tooltipsterContent); + if(c) tooltipsterContent = c; + $this.data('tooltipsterContent', tooltipsterContent); $this.removeAttr('title'); @@ -126,99 +128,90 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI $this = icon; } - // fire our init function before moving on - object.options.functionInit($this, tooltipsterContent, function(newContent) { - // if we're changing the content - if (newContent) { - tooltipsterContent = newContent; - $this.data('tooltipsterContent', newContent); - } - - // if this is a touch device, add some touch events to launch the tooltip - if ((object.options.touchDevices) && (touchDevice) && ((object.options.trigger == 'click') || (object.options.trigger == 'hover'))) { - $this.on('touchstart.tooltipster', function(element, options) { + // if this is a touch device, add some touch events to launch the tooltip + if ((object.options.touchDevices) && (touchDevice) && ((object.options.trigger == 'click') || (object.options.trigger == 'hover'))) { + $this.on('touchstart.tooltipster', function(element, options) { + object.showTooltip(); + }); + } + + // if this is a desktop, deal with adding regular mouse events + else { + + // if hover events are set to show and hide the tooltip, attach those events respectively + if (object.options.trigger == 'hover') { + $this.on('mouseenter.tooltipster', function() { object.showTooltip(); }); - } - - // if this is a desktop, deal with adding regular mouse events - else { - - // if hover events are set to show and hide the tooltip, attach those events respectively - if (object.options.trigger == 'hover') { - $this.on('mouseenter.tooltipster', function() { - object.showTooltip(); - }); - - // if this is an interactive tooltip, delay getting rid of the tooltip right away so you have a chance to hover on the tooltip - if (object.options.interactive) { - $this.on('mouseleave.tooltipster', function() { - var tooltipster = $this.data('tooltipster'); - var keepAlive = false; + + // if this is an interactive tooltip, delay getting rid of the tooltip right away so you have a chance to hover on the tooltip + if (object.options.interactive) { + $this.on('mouseleave.tooltipster', function() { + var tooltipster = $this.data('tooltipster'); + var keepAlive = false; + + if ((tooltipster !== undefined) && (tooltipster !== '')) { + tooltipster.mouseenter(function() { + keepAlive = true; + }); + tooltipster.mouseleave(function() { + keepAlive = false; + }); - if ((tooltipster !== undefined) && (tooltipster !== '')) { - tooltipster.mouseenter(function() { - keepAlive = true; - }); - tooltipster.mouseleave(function() { - keepAlive = false; - }); - - var tolerance = setTimeout(function() { + var tolerance = setTimeout(function() { - if (keepAlive) { - if (object.options.interactiveAutoClose) { - tooltipster.find('select').on('change', function() { - object.hideTooltip(); - }); + if (keepAlive) { + if (object.options.interactiveAutoClose) { + tooltipster.find('select').on('change', function() { + object.hideTooltip(); + }); - tooltipster.mouseleave(function(e) { - var $target = $(e.target); + tooltipster.mouseleave(function(e) { + var $target = $(e.target); - if ($target.parents('.tooltipster-base').length === 0 || $target.hasClass('tooltipster-base')) { - object.hideTooltip(); - } + if ($target.parents('.tooltipster-base').length === 0 || $target.hasClass('tooltipster-base')) { + object.hideTooltip(); + } - else { - $target.on('mouseleave', function(e) { - object.hideTooltip(); - }); - } - }); - } - } - else { - object.hideTooltip(); + else { + $target.on('mouseleave', function(e) { + object.hideTooltip(); + }); + } + }); } - }, object.options.interactiveTolerance); - } - else { - object.hideTooltip(); - } - }); - } - - // if this is a dumb tooltip, just get rid of it on mouseleave - else { - $this.on('mouseleave.tooltipster', function() { - object.hideTooltip(); - }); - } - } - - // if click events are set to show and hide the tooltip, attach those events respectively - if (object.options.trigger == 'click') { - $this.on('click.tooltipster', function() { - if (($this.data('tooltipster') === '') || ($this.data('tooltipster') === undefined)) { - object.showTooltip(); + } + else { + object.hideTooltip(); + } + }, object.options.interactiveTolerance); } else { object.hideTooltip(); } }); } + + // if this is a dumb tooltip, just get rid of it on mouseleave + else { + $this.on('mouseleave.tooltipster', function() { + object.hideTooltip(); + }); + } } - }); + + // if click events are set to show and hide the tooltip, attach those events respectively + if (object.options.trigger == 'click') { + $this.on('click.tooltipster', function() { + if (($this.data('tooltipster') === '') || ($this.data('tooltipster') === undefined)) { + object.showTooltip(); + } + else { + object.hideTooltip(); + } + }); + } + } } }, diff --git a/js/jquery.tooltipster.min.js b/js/jquery.tooltipster.min.js index 8ff221c..8bee047 100644 --- a/js/jquery.tooltipster.min.js +++ b/js/jquery.tooltipster.min.js @@ -1 +1 @@ -(function(d,f,g,b){var e="tooltipster",c={animation:"fade",arrow:true,arrowColor:"",content:"",delay:200,fixedWidth:0,maxWidth:0,functionInit:function(m,o,n){n()},functionBefore:function(m,n){n()},functionReady:function(m,n){},functionAfter:function(m){},icon:"(?)",iconDesktop:false,iconTouch:false,iconTheme:".tooltipster-icon",interactive:false,interactiveTolerance:350,interactiveAutoClose:true,offsetX:0,offsetY:0,onlyOne:true,position:"top",speed:350,timer:0,theme:".tooltipster-default",touchDevices:true,trigger:"hover",updateAnimation:true};function j(n,m){this.element=n;this.options=d.extend({},c,m);this._defaults=c;this._name=e;this.init()}function k(){return !!("ontouchstart" in f)}function a(){var m=g.body||g.documentElement;var o=m.style;var q="transition";if(typeof o[q]=="string"){return true}v=["Moz","Webkit","Khtml","O","ms"],q=q.charAt(0).toUpperCase()+q.substr(1);for(var n=0;n0?n.options.content:r.attr("title");r.data("tooltipsterContent",m);r.removeAttr("title");if((n.options.iconDesktop)&&(!h)||((n.options.iconTouch)&&(h))){var p=n.options.iconTheme;var o=d('');o.data("tooltipsterContent",m).append(n.options.icon).insertAfter(r);r.data("tooltipsterIcon",o);r=o}n.options.functionInit(r,m,function(s){if(s){m=s;r.data("tooltipsterContent",s)}if((n.options.touchDevices)&&(h)&&((n.options.trigger=="click")||(n.options.trigger=="hover"))){r.bind("touchstart",function(u,t){n.showTooltip()})}else{if(n.options.trigger=="hover"){r.on("mouseenter.tooltipster",function(){n.showTooltip()});if(n.options.interactive){r.on("mouseleave.tooltipster",function(){var u=r.data("tooltipster");var w=false;if((u!==b)&&(u!=="")){u.mouseenter(function(){w=true});u.mouseleave(function(){w=false});var t=setTimeout(function(){if(w){if(n.options.interactiveAutoClose){u.find("select").on("change",function(){n.hideTooltip()});u.mouseleave(function(y){var x=d(y.target);if(x.parents(".tooltipster-base").length===0||x.hasClass("tooltipster-base")){n.hideTooltip()}else{x.on("mouseleave",function(z){n.hideTooltip()})}})}}else{n.hideTooltip()}},n.options.interactiveTolerance)}else{n.hideTooltip()}})}else{r.on("mouseleave.tooltipster",function(){n.hideTooltip()})}}if(n.options.trigger=="click"){r.on("click.tooltipster",function(){if((r.data("tooltipster")==="")||(r.data("tooltipster")===b)){n.showTooltip()}else{n.hideTooltip()}})}}})}},showTooltip:function(n){var o=d(this.element);var m=this;if(o.data("tooltipsterIcon")!==b){o=o.data("tooltipsterIcon")}if(!o.hasClass("tooltipster-disable")){if((d(".tooltipster-base").not(".tooltipster-dying").length>0)&&(m.options.onlyOne)){d(".tooltipster-base").not(".tooltipster-dying").not(o.data("tooltipster")).each(function(){d(this).addClass("tooltipster-kill");var p=d(this).data("origin");p.data("plugin_tooltipster").hideTooltip()})}o.clearQueue().delay(m.options.delay).queue(function(){m.options.functionBefore(o,function(){if((o.data("tooltipster")!==b)&&(o.data("tooltipster")!=="")){var y=o.data("tooltipster");if(!y.hasClass("tooltipster-kill")){var u="tooltipster-"+m.options.animation;y.removeClass("tooltipster-dying");if(l){y.clearQueue().addClass(u+"-show")}if(m.options.timer>0){var r=y.data("tooltipsterTimer");clearTimeout(r);r=setTimeout(function(){y.data("tooltipsterTimer",b);m.hideTooltip()},m.options.timer);y.data("tooltipsterTimer",r)}if((m.options.touchDevices)&&(h)){d("body").bind("touchstart",function(D){if(m.options.interactive){var F=d(D.target);var E=true;F.parents().each(function(){if(d(this).hasClass("tooltipster-base")){E=false}});if(E){m.hideTooltip();d("body").unbind("touchstart")}}else{m.hideTooltip();d("body").unbind("touchstart")}})}}}else{m.options._bodyOverflowX=d("body").css("overflow-x");d("body").css("overflow-x","hidden");var z=m.getContent(o);var x=m.options.theme;var A=x.replace(".","");var u="tooltipster-"+m.options.animation;var t="-webkit-transition-duration: "+m.options.speed+"ms; -webkit-animation-duration: "+m.options.speed+"ms; -moz-transition-duration: "+m.options.speed+"ms; -moz-animation-duration: "+m.options.speed+"ms; -o-transition-duration: "+m.options.speed+"ms; -o-animation-duration: "+m.options.speed+"ms; -ms-transition-duration: "+m.options.speed+"ms; -ms-animation-duration: "+m.options.speed+"ms; transition-duration: "+m.options.speed+"ms; animation-duration: "+m.options.speed+"ms;";var p=m.options.fixedWidth>0?"width:"+Math.round(m.options.fixedWidth)+"px;":"";var B=m.options.maxWidth>0?"max-width:"+Math.round(m.options.maxWidth)+"px;":"";var w=m.options.interactive?"pointer-events: auto;":"";var y=d('
');var s=d('
');s.html(z);y.append(s);y.appendTo("body");o.data("tooltipster",y);y.data("origin",o);m.positionTooltip();m.options.functionReady(o,y);if(l){y.addClass(u+"-show")}else{y.css("display","none").removeClass(u).fadeIn(m.options.speed)}var C=z;var q=setInterval(function(){var D=m.getContent(o);if(d("body").find(o).length===0){y.addClass("tooltipster-dying");m.hideTooltip()}else{if((C!==D)&&(D!=="")){C=D;y.find(".tooltipster-content").html(D);if(m.options.updateAnimation){if(a()){y.css({width:"","-webkit-transition":"all "+m.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-moz-transition":"all "+m.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-o-transition":"all "+m.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-ms-transition":"all "+m.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms",transition:"all "+m.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms"}).addClass("tooltipster-content-changing");setTimeout(function(){y.removeClass("tooltipster-content-changing");setTimeout(function(){y.css({"-webkit-transition":m.options.speed+"ms","-moz-transition":m.options.speed+"ms","-o-transition":m.options.speed+"ms","-ms-transition":m.options.speed+"ms",transition:m.options.speed+"ms"})},m.options.speed)},m.options.speed)}else{y.fadeTo(m.options.speed,0.5,function(){y.fadeTo(m.options.speed,1)})}}m.positionTooltip()}}if((d("body").find(y).length===0)||(d("body").find(o).length===0)){clearInterval(q)}},200);if(m.options.timer>0){var r=setTimeout(function(){y.data("tooltipsterTimer",b);m.hideTooltip()},m.options.timer+m.options.speed);y.data("tooltipsterTimer",r)}if((m.options.touchDevices)&&(h)){d("body").bind("touchstart",function(D){if(m.options.interactive){var F=d(D.target);var E=true;F.parents().each(function(){if(d(this).hasClass("tooltipster-base")){E=false}});if(E){m.hideTooltip();d("body").unbind("touchstart")}}else{m.hideTooltip();d("body").unbind("touchstart")}})}}});o.dequeue()})}},hideTooltip:function(n){var q=d(this.element);var m=this;if(q.data("tooltipsterIcon")!==b){q=q.data("tooltipsterIcon")}var p=q.data("tooltipster");if(p===b){p=d(".tooltipster-dying")}q.clearQueue();if((p!==b)&&(p!=="")){var r=p.data("tooltipsterTimer");if(r!==b){clearTimeout(r)}var o="tooltipster-"+m.options.animation;if(l){p.clearQueue().removeClass(o+"-show").addClass("tooltipster-dying").delay(m.options.speed).queue(function(){p.remove();q.data("tooltipster","");d("body").css("overflow-x",m.options._bodyOverflowX);m.options.functionAfter(q)})}else{p.clearQueue().addClass("tooltipster-dying").fadeOut(m.options.speed,function(){p.remove();q.data("tooltipster","");d("body").css("overflow-x",m.options._bodyOverflowX);m.options.functionAfter(q)})}}},positionTooltip:function(P){var B=d(this.element);var ac=this;if(B.data("tooltipsterIcon")!==b){B=B.data("tooltipsterIcon")}if((B.data("tooltipster")!==b)&&(B.data("tooltipster")!=="")){var aj=B.data("tooltipster");aj.css("width","");var ak=d(f).width();var C=B.outerWidth(false);var ai=B.outerHeight(false);var an=aj.outerWidth(false);var n=aj.innerWidth()+1;var N=aj.outerHeight(false);var ab=B.offset();var aa=ab.top;var w=ab.left;var z=b;if(B.is("area")){var U=B.attr("shape");var ah=B.parent().attr("name");var Q=d('img[usemap="#'+ah+'"]');var o=Q.offset().left;var M=Q.offset().top;var X=B.attr("coords")!==b?B.attr("coords").split(","):b;if(U=="circle"){var O=parseInt(X[0]);var s=parseInt(X[1]);var E=parseInt(X[2]);ai=E*2;C=E*2;aa=M+s-E;w=o+O-E}else{if(U=="rect"){var O=parseInt(X[0]);var s=parseInt(X[1]);var r=parseInt(X[2]);var K=parseInt(X[3]);ai=K-s;C=r-O;aa=M+s;w=o+O}else{if(U=="poly"){var y=[];var ag=[];var I=0,H=0,ae=0,ad=0;var al="even";for(i=0;iae){ae=G;if(i===0){I=ae}}if(Gad){ad=G;if(i==1){H=ad}}if(Gak){var ao=t-((ak+ap)-an);t=(ak+ap)-an;aj.data("arrow-reposition",ao)}}function u(ap,ao){if(((aa-d(f).scrollTop()-N-Y-12)<0)&&(ao.indexOf("top")>-1)){ac.options.position=ap;z=ao}if(((aa+ai+N+12+Y)>(d(f).scrollTop()+d(f).height()))&&(ao.indexOf("bottom")>-1)){ac.options.position=ap;z=ao;W=(aa-N)-Y-12}}if(ac.options.position=="top"){var R=(w+an)-(w+C);t=(w+Z)-(R/2);W=(aa-N)-Y-12;x();u("bottom","top")}if(ac.options.position=="top-left"){t=w+Z;W=(aa-N)-Y-12;x();u("bottom-left","top-left")}if(ac.options.position=="top-right"){t=(w+C+Z)-an;W=(aa-N)-Y-12;x();u("bottom-right","top-right")}if(ac.options.position=="bottom"){var R=(w+an)-(w+C);t=w-(R/2)+Z;W=(aa+ai)+Y+12;x();u("top","bottom")}if(ac.options.position=="bottom-left"){t=w+Z;W=(aa+ai)+Y+12;x();u("top-left","bottom-left")}if(ac.options.position=="bottom-right"){t=(w+C+Z)-an;W=(aa+ai)+Y+12;x();u("top-right","bottom-right")}if(ac.options.position=="left"){t=w-Z-an-12;af=w+Z+C+12;var L=(aa+N)-(aa+B.outerHeight(false));W=aa-(L/2)-Y;if((t<0)&&((af+an)>ak)){var p=parseFloat(aj.css("border-width"))*2;var m=(an+t)-p;aj.css("width",m+"px");N=aj.outerHeight(false);t=w-Z-m-12-p;L=(aa+N)-(aa+B.outerHeight(false));W=aa-(L/2)-Y}else{if(t<0){t=w+Z+C+12;aj.data("arrow-reposition","left")}}}if(ac.options.position=="right"){t=w+Z+C+12;af=w-Z-an-12;var L=(aa+N)-(aa+B.outerHeight(false));W=aa-(L/2)-Y;if(((t+an)>ak)&&(af<0)){var p=parseFloat(aj.css("border-width"))*2;var m=(ak-t)-p;aj.css("width",m+"px");N=aj.outerHeight(false);L=(aa+N)-(aa+B.outerHeight(false));W=aa-(L/2)-Y}else{if((t+an)>ak){t=w-Z-an-12;aj.data("arrow-reposition","right")}}}if(ac.options.arrow){var J="tooltipster-arrow-"+ac.options.position;if(ac.options.arrowColor.length<1){var S=aj.css("background-color")}else{var S=ac.options.arrowColor}var am=aj.data("arrow-reposition");if(!am){am=""}else{if(am=="left"){J="tooltipster-arrow-right";am=""}else{if(am=="right"){J="tooltipster-arrow-left";am=""}else{am="left:"+Math.round(am)+"px;"}}}if((ac.options.position=="top")||(ac.options.position=="top-left")||(ac.options.position=="top-right")){var V=parseFloat(aj.css("border-bottom-width"));var A=aj.css("border-bottom-color")}else{if((ac.options.position=="bottom")||(ac.options.position=="bottom-left")||(ac.options.position=="bottom-right")){var V=parseFloat(aj.css("border-top-width"));var A=aj.css("border-top-color")}else{if(ac.options.position=="left"){var V=parseFloat(aj.css("border-right-width"));var A=aj.css("border-right-color")}else{if(ac.options.position=="right"){var V=parseFloat(aj.css("border-left-width"));var A=aj.css("border-left-color")}else{var V=parseFloat(aj.css("border-bottom-width"));var A=aj.css("border-bottom-color")}}}}if(V>1){V++}var F="";if(V!==0){var D="";var T="border-color: "+A+";";if(J.indexOf("bottom")!==-1){D="margin-top: -"+Math.round(V)+"px;"}else{if(J.indexOf("top")!==-1){D="margin-bottom: -"+Math.round(V)+"px;"}else{if(J.indexOf("left")!==-1){D="margin-right: -"+Math.round(V)+"px;"}else{if(J.indexOf("right")!==-1){D="margin-left: -"+Math.round(V)+"px;"}}}}F=''}aj.find(".tooltipster-arrow").remove();q='
'+F+'
';aj.append(q)}aj.css({top:Math.round(W)+"px",left:Math.round(t)+"px"});if(z!==b){ac.options.position=z}}},getContent:function(m){var n=m.data("tooltipsterContent");n=d(d.parseHTML("
"+n+"
")).html();return n}};d.fn[e]=function(o){if(o&&o==="setDefaults"){d.extend(c,arguments[1])}else{if(typeof o==="string"){var q=this;var m=arguments[1];var n=null;if(q.data("plugin_tooltipster")===b){var p=q.find("*");q=d();p.each(function(){if(d(this).data("plugin_tooltipster")!==b){q.push(d(this))}})}q.each(function(){switch(o.toLowerCase()){case"show":d(this).data("plugin_tooltipster").showTooltip();break;case"hide":d(this).data("plugin_tooltipster").hideTooltip();break;case"disable":d(this).addClass("tooltipster-disable");break;case"enable":d(this).removeClass("tooltipster-disable");break;case"destroy":d(this).data("plugin_tooltipster").hideTooltip();d(this).data("plugin_tooltipster","").attr("title",q.data("tooltipsterContent")).data("tooltipsterContent","").data("plugin_tooltipster","").off("mouseenter.tooltipster mouseleave.tooltipster click.tooltipster").unbind("touchstart");break;case"elementicon":n=d(this).data("tooltipsterIcon");n=n?n[0]:b;return false;case"update":var r=m;if(d(this).data("tooltipsterIcon")===b){d(this).data("tooltipsterContent",r)}else{var s=d(this).data("tooltipsterIcon");s.data("tooltipsterContent",r)}break;case"reposition":d(this).data("plugin_tooltipster").positionTooltip();break;case"val":n=d(this).data("tooltipsterContent");console.log(n);return false}});return(n!==null)?n:this}else{return this.each(function(){if(!d.data(this,"plugin_"+e)){d.data(this,"plugin_"+e,new j(this,o))}})}}};if(h){f.addEventListener("orientationchange",function(){if(d(".tooltipster-base").length>0){d(".tooltipster-base").each(function(){var m=d(this).data("origin");m.data("plugin_tooltipster").hideTooltip()})}},false)}d(f).on("scroll.tooltipster",function(){var m=d(".tooltipster-base").data("origin");if(m){m.tooltipster("reposition")}});d(f).on("resize.tooltipster",function(){var m=d(".tooltipster-base").data("origin");if((m!==null)&&(m!==b)){m.tooltipster("reposition")}})})(jQuery,window,document); +;(function(e,t,n,r){function u(t,n){this.element=t;this.options=e.extend({},o,n);this._defaults=o;this._name=s;this.init()}function a(){return!!("ontouchstart"in t)}function f(){var e=n.body||n.documentElement;var t=e.style;var r="transition";if(typeof t[r]=="string"){return true}v=["Moz","Webkit","Khtml","O","ms"],r=r.charAt(0).toUpperCase()+r.substr(1);for(var i=0;i0?i.options.content:t.attr("title");var u=i.options.functionInit(t,o);if(u)o=u;t.data("tooltipsterContent",o);t.removeAttr("title");if(i.options.iconDesktop&&!c||i.options.iconTouch&&c){var a=i.options.iconTheme;var f=e('');f.data("tooltipsterContent",o).append(i.options.icon).insertAfter(t);t.data("tooltipsterIcon",f);t=f}if(i.options.touchDevices&&c&&(i.options.trigger=="click"||i.options.trigger=="hover")){t.on("touchstart.tooltipster",function(e,t){i.showTooltip()})}else{if(i.options.trigger=="hover"){t.on("mouseenter.tooltipster",function(){i.showTooltip()});if(i.options.interactive){t.on("mouseleave.tooltipster",function(){var n=t.data("tooltipster");var s=false;if(n!==r&&n!==""){n.mouseenter(function(){s=true});n.mouseleave(function(){s=false});var o=setTimeout(function(){if(s){if(i.options.interactiveAutoClose){n.find("select").on("change",function(){i.hideTooltip()});n.mouseleave(function(t){var n=e(t.target);if(n.parents(".tooltipster-base").length===0||n.hasClass("tooltipster-base")){i.hideTooltip()}else{n.on("mouseleave",function(e){i.hideTooltip()})}})}}else{i.hideTooltip()}},i.options.interactiveTolerance)}else{i.hideTooltip()}})}else{t.on("mouseleave.tooltipster",function(){i.hideTooltip()})}}if(i.options.trigger=="click"){t.on("click.tooltipster",function(){if(t.data("tooltipster")===""||t.data("tooltipster")===r){i.showTooltip()}else{i.hideTooltip()}})}}}},showTooltip:function(t){var n=e(this.element);var i=this;if(n.data("tooltipsterIcon")!==r){n=n.data("tooltipsterIcon")}if(!n.hasClass("tooltipster-disable")){if(e(".tooltipster-base").not(".tooltipster-dying").length>0&&i.options.onlyOne){e(".tooltipster-base").not(".tooltipster-dying").not(n.data("tooltipster")).each(function(){e(this).addClass("tooltipster-kill");var t=e(this).data("origin");t.data("plugin_tooltipster").hideTooltip()})}n.clearQueue().delay(i.options.delay).queue(function(){i.options.functionBefore(n,function(){if(n.data("tooltipster")!==r&&n.data("tooltipster")!==""){var t=n.data("tooltipster");if(!t.hasClass("tooltipster-kill")){var s="tooltipster-"+i.options.animation;t.removeClass("tooltipster-dying");if(l){t.clearQueue().addClass(s+"-show")}if(i.options.timer>0){var o=t.data("tooltipsterTimer");clearTimeout(o);o=setTimeout(function(){t.data("tooltipsterTimer",r);i.hideTooltip()},i.options.timer);t.data("tooltipsterTimer",o)}if(i.options.touchDevices&&c){e("body").bind("touchstart",function(t){if(i.options.interactive){var n=e(t.target);var r=true;n.parents().each(function(){if(e(this).hasClass("tooltipster-base")){r=false}});if(r){i.hideTooltip();e("body").unbind("touchstart")}}else{i.hideTooltip();e("body").unbind("touchstart")}})}}}else{i.options._bodyOverflowX=e("body").css("overflow-x");e("body").css("overflow-x","hidden");var u=i.getContent(n);var a=i.options.theme;var h=a.replace(".","");var s="tooltipster-"+i.options.animation;var p="-webkit-transition-duration: "+i.options.speed+"ms; -webkit-animation-duration: "+i.options.speed+"ms; -moz-transition-duration: "+i.options.speed+"ms; -moz-animation-duration: "+i.options.speed+"ms; -o-transition-duration: "+i.options.speed+"ms; -o-animation-duration: "+i.options.speed+"ms; -ms-transition-duration: "+i.options.speed+"ms; -ms-animation-duration: "+i.options.speed+"ms; transition-duration: "+i.options.speed+"ms; animation-duration: "+i.options.speed+"ms;";var d=i.options.fixedWidth>0?"width:"+Math.round(i.options.fixedWidth)+"px;":"";var v=i.options.maxWidth>0?"max-width:"+Math.round(i.options.maxWidth)+"px;":"";var m=i.options.interactive?"pointer-events: auto;":"";var t=e('
');var g=e('
');g.html(u);t.append(g);t.appendTo("body");n.data("tooltipster",t);t.data("origin",n);i.positionTooltip();i.options.functionReady(n,t);if(l){t.addClass(s+"-show")}else{t.css("display","none").removeClass(s).fadeIn(i.options.speed)}var y=u;var b=setInterval(function(){var r=i.getContent(n);if(e("body").find(n).length===0){t.addClass("tooltipster-dying");i.hideTooltip()}else if(y!==r&&r!==""){y=r;t.find(".tooltipster-content").html(r);if(i.options.updateAnimation){if(f()){t.css({width:"","-webkit-transition":"all "+i.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-moz-transition":"all "+i.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-o-transition":"all "+i.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-ms-transition":"all "+i.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms",transition:"all "+i.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms"}).addClass("tooltipster-content-changing");setTimeout(function(){t.removeClass("tooltipster-content-changing");setTimeout(function(){t.css({"-webkit-transition":i.options.speed+"ms","-moz-transition":i.options.speed+"ms","-o-transition":i.options.speed+"ms","-ms-transition":i.options.speed+"ms",transition:i.options.speed+"ms"})},i.options.speed)},i.options.speed)}else{t.fadeTo(i.options.speed,.5,function(){t.fadeTo(i.options.speed,1)})}}i.positionTooltip()}if(e("body").find(t).length===0||e("body").find(n).length===0){clearInterval(b)}},200);if(i.options.timer>0){var o=setTimeout(function(){t.data("tooltipsterTimer",r);i.hideTooltip()},i.options.timer+i.options.speed);t.data("tooltipsterTimer",o)}if(i.options.touchDevices&&c){e("body").bind("touchstart",function(t){if(i.options.interactive){var n=e(t.target);var r=true;n.parents().each(function(){if(e(this).hasClass("tooltipster-base")){r=false}});if(r){i.hideTooltip();e("body").unbind("touchstart")}}else{i.hideTooltip();e("body").unbind("touchstart")}})}}});n.dequeue()})}},hideTooltip:function(t){var n=e(this.element);var i=this;if(n.data("tooltipsterIcon")!==r){n=n.data("tooltipsterIcon")}var s=n.data("tooltipster");if(s===r){s=e(".tooltipster-dying")}n.clearQueue();if(s!==r&&s!==""){var o=s.data("tooltipsterTimer");if(o!==r){clearTimeout(o)}var u="tooltipster-"+i.options.animation;if(l){s.clearQueue().removeClass(u+"-show").addClass("tooltipster-dying").delay(i.options.speed).queue(function(){s.remove();n.data("tooltipster","");e("body").css("overflow-x",i.options._bodyOverflowX);i.options.functionAfter(n)})}else{s.clearQueue().addClass("tooltipster-dying").fadeOut(i.options.speed,function(){s.remove();n.data("tooltipster","");e("body").css("overflow-x",i.options._bodyOverflowX);i.options.functionAfter(n)})}}},positionTooltip:function(n){var s=e(this.element);var o=this;if(s.data("tooltipsterIcon")!==r){s=s.data("tooltipsterIcon")}if(s.data("tooltipster")!==r&&s.data("tooltipster")!==""){var u=s.data("tooltipster");u.css("width","");var a=e(t).width();var f=s.outerWidth(false);var l=s.outerHeight(false);var c=u.outerWidth(false);var h=u.innerWidth()+1;var p=u.outerHeight(false);var d=s.offset();var v=d.top;var m=d.left;var g=r;if(s.is("area")){var y=s.attr("shape");var b=s.parent().attr("name");var w=e('img[usemap="#'+b+'"]');var E=w.offset().left;var S=w.offset().top;var x=s.attr("coords")!==r?s.attr("coords").split(","):r;if(y=="circle"){var T=parseInt(x[0]);var N=parseInt(x[1]);var C=parseInt(x[2]);l=C*2;f=C*2;v=S+N-C;m=E+T-C}else if(y=="rect"){var T=parseInt(x[0]);var N=parseInt(x[1]);var k=parseInt(x[2]);var L=parseInt(x[3]);l=L-N;f=k-T;v=S+N;m=E+T}else if(y=="poly"){var A=[];var O=[];var M=0,_=0,D=0,P=0;var H="even";for(i=0;iD){D=B;if(i===0){M=D}}if(BP){P=B;if(i==1){_=P}}if(B<_){_=B}H="even"}}l=P-_;f=D-M;v=S+_;m=E+M}else{l=w.outerHeight(false);f=w.outerWidth(false);v=S;m=E}}if(o.options.fixedWidth===0){u.css({width:Math.round(h)+"px","padding-left":"0px","padding-right":"0px"})}var j=0,F=0,I=0;var q=parseInt(o.options.offsetY);var R=parseInt(o.options.offsetX);var U="";function z(){var n=e(t).scrollLeft();if(j-n<0){var r=j-n;j=n;u.data("arrow-reposition",r)}if(j+c-n>a){var r=j-(a+n-c);j=a+n-c;u.data("arrow-reposition",r)}}function W(n,r){if(v-e(t).scrollTop()-p-q-12<0&&r.indexOf("top")>-1){o.options.position=n;g=r}if(v+l+p+12+q>e(t).scrollTop()+e(t).height()&&r.indexOf("bottom")>-1){o.options.position=n;g=r;I=v-p-q-12}}if(o.options.position=="top"){var X=m+c-(m+f);j=m+R-X/2;I=v-p-q-12;z();W("bottom","top")}if(o.options.position=="top-left"){j=m+R;I=v-p-q-12;z();W("bottom-left","top-left")}if(o.options.position=="top-right"){j=m+f+R-c;I=v-p-q-12;z();W("bottom-right","top-right")}if(o.options.position=="bottom"){var X=m+c-(m+f);j=m-X/2+R;I=v+l+q+12;z();W("top","bottom")}if(o.options.position=="bottom-left"){j=m+R;I=v+l+q+12;z();W("top-left","bottom-left")}if(o.options.position=="bottom-right"){j=m+f+R-c;I=v+l+q+12;z();W("top-right","bottom-right")}if(o.options.position=="left"){j=m-R-c-12;F=m+R+f+12;var V=v+p-(v+s.outerHeight(false));I=v-V/2-q;if(j<0&&F+c>a){var J=parseFloat(u.css("border-width"))*2;var K=c+j-J;u.css("width",K+"px");p=u.outerHeight(false);j=m-R-K-12-J;V=v+p-(v+s.outerHeight(false));I=v-V/2-q}else if(j<0){j=m+R+f+12;u.data("arrow-reposition","left")}}if(o.options.position=="right"){j=m+R+f+12;F=m-R-c-12;var V=v+p-(v+s.outerHeight(false));I=v-V/2-q;if(j+c>a&&F<0){var J=parseFloat(u.css("border-width"))*2;var K=a-j-J;u.css("width",K+"px");p=u.outerHeight(false);V=v+p-(v+s.outerHeight(false));I=v-V/2-q}else if(j+c>a){j=m-R-c-12;u.data("arrow-reposition","right")}}if(o.options.arrow){var Q="tooltipster-arrow-"+o.options.position;if(o.options.arrowColor.length<1){var G=u.css("background-color")}else{var G=o.options.arrowColor}var Y=u.data("arrow-reposition");if(!Y){Y=""}else if(Y=="left"){Q="tooltipster-arrow-right";Y=""}else if(Y=="right"){Q="tooltipster-arrow-left";Y=""}else{Y="left:"+Math.round(Y)+"px;"}if(o.options.position=="top"||o.options.position=="top-left"||o.options.position=="top-right"){var Z=parseFloat(u.css("border-bottom-width"));var et=u.css("border-bottom-color")}else if(o.options.position=="bottom"||o.options.position=="bottom-left"||o.options.position=="bottom-right"){var Z=parseFloat(u.css("border-top-width"));var et=u.css("border-top-color")}else if(o.options.position=="left"){var Z=parseFloat(u.css("border-right-width"));var et=u.css("border-right-color")}else if(o.options.position=="right"){var Z=parseFloat(u.css("border-left-width"));var et=u.css("border-left-color")}else{var Z=parseFloat(u.css("border-bottom-width"));var et=u.css("border-bottom-color")}if(Z>1){Z++}var tt="";if(Z!==0){var nt="";var rt="border-color: "+et+";";if(Q.indexOf("bottom")!==-1){nt="margin-top: -"+Math.round(Z)+"px;"}else if(Q.indexOf("top")!==-1){nt="margin-bottom: -"+Math.round(Z)+"px;"}else if(Q.indexOf("left")!==-1){nt="margin-right: -"+Math.round(Z)+"px;"}else if(Q.indexOf("right")!==-1){nt="margin-left: -"+Math.round(Z)+"px;"}tt=''}u.find(".tooltipster-arrow").remove();U='
'+tt+'
';u.append(U)}u.css({top:Math.round(I)+"px",left:Math.round(j)+"px"});if(g!==r){o.options.position=g}}},getContent:function(t){var n=t.data("tooltipsterContent");n=e(e.parseHTML("
"+n+"
")).html();return n}};e.fn[s]=function(t){if(t&&t==="setDefaults"){e.extend(o,arguments[1])}else{if(typeof t==="string"){var n=this;var i=arguments[1];var a=null;if(n.data("plugin_tooltipster")===r){var f=n.find("*");n=e();f.each(function(){if(e(this).data("plugin_tooltipster")!==r){n.push(e(this))}})}n.each(function(){switch(t.toLowerCase()){case"show":e(this).data("plugin_tooltipster").showTooltip();break;case"hide":e(this).data("plugin_tooltipster").hideTooltip();break;case"disable":e(this).addClass("tooltipster-disable");break;case"enable":e(this).removeClass("tooltipster-disable");break;case"destroy":e(this).data("plugin_tooltipster").hideTooltip();var s=e(this).data("tooltipsterIcon");if(s)s.remove();e(this).attr("title",n.data("tooltipsterContent")).removeData("plugin_tooltipster").removeData("tooltipsterContent").removeData("tooltipsterIcon").off(".tooltipster");break;case"elementicon":a=e(this).data("tooltipsterIcon");a=a?a[0]:r;return false;case"update":var o=i;if(e(this).data("tooltipsterIcon")===r){e(this).data("tooltipsterContent",o)}else{var u=e(this).data("tooltipsterIcon");u.data("tooltipsterContent",o)}break;case"reposition":e(this).data("plugin_tooltipster").positionTooltip();break;case"val":a=e(this).data("tooltipsterContent");console.log(a);return false}});return a!==null?a:this}else{return this.each(function(){if(!e.data(this,"plugin_"+s)){e.data(this,"plugin_"+s,new u(this,t))}})}}};if(c){t.addEventListener("orientationchange",function(){if(e(".tooltipster-base").length>0){e(".tooltipster-base").each(function(){var t=e(this).data("origin");t.data("plugin_tooltipster").hideTooltip()})}},false)}e(t).on("scroll.tooltipster",function(){var t=e(".tooltipster-base").data("origin");if(t){t.tooltipster("reposition")}});e(t).on("resize.tooltipster",function(){var t=e(".tooltipster-base").data("origin");if(t!==null&&t!==r){t.tooltipster("reposition")}})})(jQuery,window,document); \ No newline at end of file diff --git a/tooltipster.jquery.json b/tooltipster.jquery.json index 140d2e9..c78e51f 100644 --- a/tooltipster.jquery.json +++ b/tooltipster.jquery.json @@ -5,7 +5,7 @@ "keywords": [ "tooltip" ], - "version": "2.2.1", + "version": "2.2.3", "author": { "name": "Caleb Jacob", "url": "http://calebjacob.com/"