Como te dijeron, cambia el
eval por
document.getElementById. (aunque igual puede seguir funcionando si lo dejas).
La primer vez que llamas
fnHide (cuando presionas el boton) le estas enviando una cadena (
algo) como parametro a la funcion. Pero cuando creas el
setTimeout, le estas enviando un objeto. Cuando se ejecuta el
setTimeout en realidad estas ejecutando
Asi, se supone que
algo es una variable u objeto. Lo que tienes que hacer es mandarlo como cadena:
Esto se haria asi:
Código:
window.setTimeout("fnHide('" + id + "')", 1000);
Si necesitas que tu funcion se ejecute cada cierto tiempo, puedes utilizar
setInterval para que no tengas que estar generando un nuevo setTimeout cada vez.