Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2011, 01:57
preludeofcommonsense
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 0
problema con event target en firefox

Buenos días,

tengo el siguiente codigo que me funciona de perlas en ie pero no consigo que funcione en firefox, y sospecho que tiene algo que ver con la propiedad target.

// aqui creo una tabla dinamica y le voy añadiendo los eventos en tiempo de ejecucion a los elementos TR: (pongo todo el codigo por si a alguien le sirve)

function MostrarDataGrid(cols,rows,size)
{


// obtenemos acceso a la tabla por su ID
var TABLE = document.getElementById("dataGrid");
//TABLE.style.border = '1px outset #D3D3D3';


// obtenemos acceso a la fila cabecera por su ID
var TROW = document.getElementById("header");
TROW.style.backgroundColor= '#365999';


//Creamos la cabecera
for(i=0;i<columnas.length;++i)
{

celda=TROW.insertCell(-1);
celda.id=columnas[i];
celda.style.width=''+tamano[i]+'px';
celda.innerHTML = columnas[i];
celda.style.color='#FFFFFF';


}

//Añadimos los registros
for(i=0;i<valores.length;++i)
{
//Creamos fila
var newRow = TABLE.insertRow(-1);
newRow.id=valores[i][0];
newRow.style.backgroundColor= '#7B96C8';


AttachEvent(newRow,"mouseover",function(){atenderE ventoOver()});
AttachEvent(newRow,"mouseout",function(){atenderEv entoOut()});
AttachEvent(newRow,"click",function(){atenderEvent oClick()});


//añadimos celdas con valores
for(j=0;j<valores[0].length;++j)
{
celda=newRow.insertCell(-1);
celda.id=columnas[j];
celda.style.width=''+tamano[j]+'px';
celda.innerHTML = valores[i][j];
celda.style.color='#FFFFFF';

}

}



//Aqui distingo entre i.e. y firefox para llamar a sus respectivos métodos


function AttachEvent(obj,evt,fnc,useCapture)
{
if (!useCapture) useCapture=false;
if (obj.addEventListener)
return obj.addEventListener(evt,fnc,false);
else (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);

}


// y por último la función que trata el evento (pongo solo el de MouseOver)

function atenderEventoOver(e)
{

// si aqui pongo un alert para monitorizar en firefox si me muestra el //contenido

var targ;
if (!e) var e = window.event; // aqui he probado tambien a poner
//var e=window.event? event : e ; pero tampoco funciona

if (e.target) targ = e.target;

//aqui en firefox ya no funciona el alert, por lo que el fallo está en estas //líneas superiores
else if (e.srcElement) targ = e.srcElement;



targ.parentNode.style.backgroundColor= '#365999';
targ.parentNode.style.cursor= 'hand';

}

Un poco de ayuda se agradece ya que me esta esta obsesionando y retrasa mi proyecto Muchas gracias