Les muestro un pequeño ejemplo ACA - Tooltips. Pasen rápido el mouse por arriba y van a ver que algunas no desaparecen.
Este es el código que utilizo:
Código:
Y lo llamo desde acá:var ajaxtooltip={ fadeeffect: [true, 150], //enable Fade? [true/false, duration_milliseconds] useroffset: [10, 10], //additional x and y offset of tooltip from mouse cursor, respectively loadingHTML: '<div style="text-align:center;"></div>', positiontip:function($tooltip, e){ var docwidth=(window.innerWidth)? window.innerWidth-35 : ajaxtooltip.iebody.clientWidth-35 var docheight=(window.innerHeight)? window.innerHeight-38 : ajaxtooltip.iebody.clientHeight-35 var twidth=$tooltip.get(0).offsetWidth var theight=$tooltip.get(0).offsetHeight var tipx=e.pageX+this.useroffset[0] var tipy=e.pageY+this.useroffset[1] tipx=(e.clientX+twidth>docwidth)? tipx-twidth-(2*this.useroffset[0]) : tipx //account for right edge tipy=(e.clientY+theight>docheight)? tipy-theight-(2*this.useroffset[0]) : tipy //account for bottom edge $tooltip.css({left: tipx, top: tipy}) }, showtip:function($tooltip, e){ if (this.fadeeffect[0]) $tooltip.hide().fadeIn(this.fadeeffect[1]) else $tooltip.show() }, hidetip:function($tooltip, e){ if (this.fadeeffect[0]) $tooltip.fadeOut(this.fadeeffect[1]) else $tooltip.hide() } } jQuery(document).ready(function(){ ajaxtooltip.iebody=(document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body var tooltips=[] //array to contain references to all tooltip DIVs on the page $('*[@title^="ajax:"]').each(function(index){ //find all links with "title=ajax:" declaration this.titleurl=jQuery.trim(this.getAttribute('title').split(':')[1]) //get URL of external file this.titleposition=index+' pos' //remember this tooltip DIV's position relative to its peers tooltips.push($('<div class="ajaxtooltip"></div>').appendTo('body')) var $target=$(this) $target.removeAttr('title','<div class="ajaxtooltip"></div>') $target.hover( function(e){ //onMouseover element var $tooltip=tooltips[parseInt(this.titleposition)] if (!$tooltip.get(0).loadsuccess){ //first time fetching Ajax content for this tooltip? $tooltip.html(ajaxtooltip.loadingHTML).show() $tooltip.load(this.titleurl, '', function(){ ajaxtooltip.positiontip($tooltip, e) ajaxtooltip.showtip($tooltip, e) $tooltip.get(0).loadsuccess=true }) } else{ ajaxtooltip.positiontip($tooltip, e) ajaxtooltip.showtip($tooltip, e) } }, function(e){ //onMouseout element var $tooltip=tooltips[parseInt(this.titleposition)] ajaxtooltip.hidetip($tooltip, e) } ) $target.bind("mousemove", function(e){ var $tooltip=tooltips[parseInt(this.titleposition)] ajaxtooltip.positiontip($tooltip, e) }) }) })
index.php
Código:
Como les decia antes, todo funciona pero muchas veces los tooltips no desaparecen.<script type="text/javascript" src="jquery-1.2.2.pack.js"></script> <style type="text/css"> .ajaxtooltip{ position: absolute; /*leave this alone*/ display: none; /*leave this alone*/ width: 300px; left: 0; /*leave this alone*/ top: 0; /*leave this alone*/ background: lightyellow; border: 2px solid gray; border-width: 1px 2px 2px 1px; padding: 5px; } </style> <script type="text/javascript" src="ajaxtooltip.js"></script> .......... // y muestro el tooltip al pasar por arriba de esta manera <div id="cont-foto" title="ajax:tooltip.php?id_producto='.$registro['id_producto'].'"><a href="rpauto-detalle.php?id_producto='.$registro['id_producto'].'" target="_top"><img src="'.$filename.'" border="0" /></a></div>
¿Me podrían decir por favor que se peude hacer para que SIEMPRE desaparezcan?
Muchas gracias y saludos.
Marx