AJAX - setAttribute una vez actuailza

 
Vista:

setAttribute una vez actuailza

Publicado por dipdev (2 intervenciones) el 09/11/2007 09:28:26
Muy buenas, tengo un problema, que seguro que ya ha sido tratado, pero no he dado con el texto adecuado para la búsqueda ;)

Al tema ;). Tengo un js, mediante el cual cambio atributos de ciertos elementos en el caso de disponer de javascript, ejemplo:

function cambiatributo(){
var anchors = $$('a.laclase');
for (var i=0; i<anchors.length; i++){
var anchor = anchors[i];
$(anchor).setAttribute('elatributoquesea',' loquesea');
}
}
Event.observe(window,"load",cambiatributo,false);

En pincipio funciona bien, el problema viene una vez actualizamos un div mediante ajax, ya que en el documento que cargo en ese div, vuelvo a tener elementos con esa misma clase que deberían actualizarse y no lo hacen ya que el javascript no actua sobre ellos.

He probado a hacer un:

onComplete:function(request){cambiatributo;};

pero está claro que estamos en las mismas ;)

Encomendandome a la "ciencia infusa" he observado que si cambio el Event.observe por:

Event.observe(window,"load",cambiatributo,true);

o

Event.observe(window,"load",cambiatributo,"capturing");

En opera funciona, pero en el resto de navegadores no (muy util verdad? XD).

Bueno, a ver si alguien me puede dar una solución, muchísimas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:setAttribute una vez actuailza

Publicado por Gonzalo (26 intervenciones) el 09/11/2007 09:37:13
Event.observe(window, "load", ...) lo que hace es exactamente lo que dice: "Observar el evento de carga de la página". Es decir, eso sólo se va a ejecutar cuando se cargue la página. Y nada más. Sólo se ejecuta cuando ocurre ese evento, no es algo que se esté ejecutando continuamente.

Lo que querrás hacer es, después de insertar tus nuevos enlaces, volver a ejecutar cambiaatributo().
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:setAttribute una vez actuailza

Publicado por dipdev (2 intervenciones) el 09/11/2007 09:44:07
Gracias, Gerardo. Si, la cuestión es que probé por desesperación y en Opera funciona, no me expliques por qué.

Como te decía, vuelvo a ejecutar el cambiatributo() una vez cargados los elementos mediante un onComplete:function(request){cambiatributo;};

la cuestión es que al lanzarse cambiatributo de esta manera no parece que evalue el contenido cargado mediante Ajax, ya que hago un alert de los elementos a los que afecta, y vuelve a afectar a todos los de la carga original, pero no a los nuevos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:setAttribute una vez actuailza

Publicado por Gonzalo (26 intervenciones) el 12/11/2007 07:57:53
Supongo que donde dices:
onComplete:function(request){cambiatributo;};
quieres decir:
onComplete:function(request){cambiatributo();};

no? ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar