Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/02/2014, 16:25
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: JS deja de funcionar despues de llamada AJAX. Casi solucionado, pero...

Buenas,

Por lo que veo utilizas Mootools.

Lo 1º:

Código Javascript:
Ver original
  1. function calen_dina(){
  2. window.addEvent('domready', function(){
  3.         var myFxc = $$('.zc_month_dayblock');
  4.         myFxc.makeResizable({
  5.             modifiers: {x: false, y: 'height'},
  6.             limit: {y: [50, 350]}
  7.         });
  8.  
  9. });
  10. }

Es necesario el window.addEvent('domready', .... porque aquí le estás indicando que este código se ejecute cuando el DOM este cargado (supongo que sabes lo que es el DOM y sino míralo en Google). Si no pones el código dentro de este evento se ejecutaría antes de que los elementos del DOM estén cargados y por tanto no funcionarían.

2º: Para hacer que funcione con elementos cargados dinámicamente (AJAX) tienes que volver a llamar al código anterior, pero sin el addEvent. ¿Por qué, te preguntarás? En este caso ya no tienes que esperar a que se cargue el DOM (ya está cargado). Es importante en este caso, ejecutar la función sólo para los nuevos elementos (esto dependerá de como cargues el contenido).

Un ejemplo (suponiendo que los nuevos elementos han sido cargados dentro del divCargado):

Código Javascript:
Ver original
  1. var myFxc =
  2. $("divCargado").getElements(".zc_month_dayblock");
  3.         myFxc.makeResizable({
  4.             modifiers: {x: false, y: 'height'},
  5.             limit: {y: [50, 350]}
  6.         });

Sobre los botones, lo mejor sería que tuviesen una clase común y añadir un evento click a todos ellos a la vez con el código correspondiente, pero eso depende de como tengas el código (habría que ver más código para conocer exactamente lo que se puede hacer)

Un saludo