Buenas,
he simplificado un poco el código que tenias
Código Javascript
:
Ver originalvar tit = []; //como variable global para poder acceder facilmente
function init()
{
var objs = document.getElementsByTagName('*');
setAllTitles(objs);
}
window.onload = init;
function setAllTitles(objs)
{
// borramos los titulos, definimos los eventos y creamos el elemento
for (var i = 0; i < objs.length; i++)
{
if (objs[i].title)
{
var ob = (objs[i]);
tit[i] = ob.title;
ob.id = 'elemento-' + i; // me interesa guardar el valor de i
ob.removeAttribute ('title');
ob.onmouseover = mouseOver;
ob.onmouseout = mouseOut;
} // if
} // for
document.onmousemove = function (evt){return mouseMove(evt);};
var tt = document.createElement('div');
tt.className = 'estilos'; // todos los estilos mejor en el css
tt.id = 'lyrtooltip';
document.body.appendChild(tt);
}
/////////// funciones de los eventos
function mouseOver()
{
var tt = document.getElementById('lyrtooltip');
tt.style.display = 'block';
var orden = this.id.substr(9); //recupero el valor de i aqui
var titulo = tit[orden]; // y asi aqui accedo facilmente al titulo del elemento
tt.innerHTML = titulo;
}
function mouseOut()
{
var tt = document.getElementById('lyrtooltip');
tt.style.display = 'none';
}
function mouseMove(evt)
{
var tt = document.getElementById('lyrtooltip');
tt.style.left = ( parseInt (mouseX(evt)) + 15 ) + 'px';
tt.style.top = ( parseInt (mouseY(evt)) - 5 ) + 'px';
}
// a partir de aqui esta igual que lo tenias
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;
}
//fin
Los estilos los tendrias que asignar mediante css, las funciones de los eventos son independientes, y no hay que añadir nada en el html, con eso ya queda el código mas limpio. Espero que te sirva. Un saludo