Hola nuevamente @Panino
Me puse a releer el codigo y logre optimizarlo razonablemente asegurandome de depender de un solo objeto, de manera que no se genere cada vez. Aqui completo:
Código HTML:
// Set tooltip objects
var ttTempTitle, ttTempTimer;
var ttObject = document.createElement ('div');
ttObject.style.backgroundColor = '#000';
ttObject.style.fontFamily = 'Helvetica, Arial, sans-serif';
ttObject.style.fontSize = '10px';
ttObject.style.color = '#FFF';
ttObject.style.border = 'solid 1px #FFF';
ttObject.style.padding = '6px';
ttObject.style.position = 'absolute';
ttObject.style.left = '0px';
ttObject.style.top = '0px';
ttObject.style.display = 'none';
ttObject.id = 'lyrtooltip';
ttObject.innerHTML = '';
document.body.appendChild (ttObject);
ttObject.style.zoom = 1;
// Tooltips engine
function setAllTitles ()
{
var objs = document.getElementsByTagName('*');
var objsCant = objs.length;
//
for (var i = 0; i < objsCant; i++)
{
var obj = objs[i];
//
if (obj.title)
{
obj.onmouseover = function () { tooltipOverThis (this); }
obj.onmouseout = function () { tooltipOutThis (this); }
}
}
}
function tooltipOverThis (obj)
{
ttTempTitle = obj.title;
obj.removeAttribute ('title');
//
ttObject.style.display = 'none';
ttObject.innerHTML = ttTempTitle;
//
document.onmousemove = function (evt)
{
ttObject.style.left = ( parseInt (mouseX(evt)) + 15 ) + 'px';
ttObject.style.top = ( parseInt (mouseY(evt)) - 5 ) + 'px';
ttObject.style.display = 'block';
}
//
clearInterval (ttTempTimer);
ttTempTimer = setInterval(funcInter,5000);
function funcInter () { clearInterval (ttTempTimer); tooltipOutThis (obj); }
}
function tooltipOutThis (obj)
{
clearInterval (ttTempTimer);
obj.title = ttTempTitle;
ttObject.style.display = 'none';
document.onmousemove = null;
}
function mouseX (evt)
{
if (!evt) evt = window.event;
if (evt.pageX) return evt.pageX; else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
else return 0;
}
function mouseY (evt)
{
if (!evt) evt = window.event;
if (evt.pageY) return evt.pageY; else if (evt.clientY) return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
else return 0;
}
Gracias por el link y por mencionar el tema de los eventos, ya habia leido algo. De todos modos todos estos scripts los estoy implementado en mi propio CM, por lo que me asegurare que los clientes usen navegadores que no sean Explorer cuando me contraten, de todos modos no soy de los que no apoyan el uso de Explorer como veras en mi firma