Me gustaría si es posible intentar solucionar esto, por que tengo un quebradero de cabeza de hace 3 o 4 dias (ya abreis visto distintos topic estos dias sobre temas similares ).
Bueno sin mas os dejo el codigo:
Archivo index.html:
Código:
Archivo class.iDkBotones.js<html>
<head>
<title> Prueba iDkBotones </title>
<script src="class.iDkBotones.js" language="javascript"></script>
</head>
<body>
<div id="contenedor">
<script language="javascript">
// Creamos los 4 objetos y le voy dando una propiedad distinta ha cada mediante el cont.
for( cont = 0; cont < 4 ; cont++ )
{
var iDkBotonesObject = new iDkBotones( 'Enlace', 0, cont, '#' );
iDkBotonesObject.Show();
}
</script>
</div>
</body>
</html>
Código:
He resumido el codigo lo mas que he podido para que no se os haga pesado.//////////////////////
// CLASE iDkBotones //
//////////////////////
function iDkBotones( name, idBoton, idPadre, enlace )
{
//////////////////////////
// PROPIEDADES PÚBLICAS //
//////////////////////////
this.name = name;
this.idBoton = idBoton;
this.idPadre = idPadre;
this.enlace = enlace;
//////////////////////////
// PROPIEDADES PRIVADAS //
//////////////////////////
this.verInsertText = ( document.getElementsByTagName("body")[0].innerText != undefined )
? true : false;
//////////////////////
// MÉTODOS PÚBLICOS //
//////////////////////
this.OnMouseOver = OnMouseOver;
this.Show = Show;
}
function OnMouseOver(e)
{
alert( e );
}
function Show()
{
var crear_a = document.createElement( "a" );
crear_a.setAttribute( "href", this.enlace );
// Y aqui es donde reside todo mi quebradero ....
// si pongo :
// crear_a.onmouseover = function() { iDkBotonesObject.OnMouseOver( this.idPadre ) };
// me devuelve undefined.
// si pongo
// crear_a.onmouseover = this.OnMouseOver( this.idPadre );
// primero lo llama, pero despues el evento deja de funcionar.
// Asi en esta forma todos devuelven el ultimo valor, en este caso el 3 :(!
crear_a.onmouseover = function() { iDkBotonesObject.OnMouseOver( iDkBotonesObject.idPadre ) };
if( !this.verInsertText )
{
crear_a.textContent = this.name;
}
else
{
crear_a.innerText = this.name;
}
document.getElementById("contenedor").appendChild( crear_a );
}
Un saludo y muchisimas gracias

