Foros del Web » Programando para Internet » Javascript » Frameworks JS »

problema con datos en div que ha sido borrado previamente

Estas en el tema de problema con datos en div que ha sido borrado previamente en el foro de Frameworks JS en Foros del Web. Hola a todos. Veréis, tengo un problema que me esta trayendo por la calle de la amargura. A ver si me podéis echar un cable. ...
  #1 (permalink)  
Antiguo 25/11/2011, 16:06
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
problema con datos en div que ha sido borrado previamente

Hola a todos. Veréis, tengo un problema que me esta trayendo por la calle de la amargura. A ver si me podéis echar un cable. Os comento:

En esencia se trata de un php en el que se ejecuta una función javascript. El javascript se trata simplemente de un reloj (digital) que se muestra en una serie de divs.

Ahora, (con el javascript ejecutándose), tengo un botón (html) en el que, al pulsar, la función (el reloj js) vuelve a ejecutarse de nuevo; es decir, el reloj empieza de nuevo. El proceso que realizo concretamente es esconder el div contenedor donde esta el reloj, ejecutar la función y mostrar de nuevo los divs.

Bueno, el maldito problema es que todo funciona casi perfecto, a excepción de que al darle al botón, en esa serie de divs se muestran los dos relojes.

Me imagino donde está la raíz del problema y es que al volver a llamarse al mismo código, los divs donde deben mostrarse los dígitos del reloj son los mismos donde antes se mostraba el antiguo reloj (los muestro por la clase y diferencio los digitos por el id).

He tratado de quitar los divs con: remove(), empty(), hide(), y alguno mas…pero el resultado siempre es el mismo: se acaban mostrando (en los mismos divs) los 2 relojes a la vez.


Aqui los codigos con el proceso completo:
El php que se ejecuta al principio:
Código HTML:
Ver original
  1. <div id="resultado">
  2. <?php require ('reloj.php'); ?>//llamo al archivo donde se ejecuta el reloj
  3. </div>


reloj.php
Código HTML:
Ver original
  1. <!-- aqui hay codigo php previo pero no influye para nada en el problema. -->
  2.  
  3. <div class="cuadro-reloj">
  4.     <script type="text/javascript">tiempo()</script>//funcion js del reloj
  5.     <div class="digito" id="dechora"></div>
  6.     <div class="digito" id="unihora"></div>
  7.     <div class="digito" id="dospuntos1"></div>
  8.     <div class="digito" id="decmin"></div>
  9.     <div class="digito" id="unimin"></div>
  10.     <div class="digito" id="dospuntos2"></div>
  11.     <div class="digito" id="decseg"></div>
  12.     <div class="digito" id="uniseg"></div>
  13. </div>


Ahora, mediante js (jquery), el evento que llama a ejecutar de nuevo la funcion si se hace click en el boton.
Código Javascript:
Ver original
  1. $("#boton-activar-reloj").live("click",function(){
  2.     $.ajax({
  3.         contentType: "application/x-www-form-urlencoded",
  4.         type: "POST",
  5.         url:'activarreloj.php',
  6.         data: "",
  7.         success: function(datos){
  8.             $('.cuadro-reloj').remove();//aqui he probado de todo...
  9.             $('#resultado').html(datos);
  10.         }
  11.     });
  12. });

El archivo activarreloj.php contiene también un require al archivo reloj.php
Código HTML:
Ver original
  1. ...
  2. <?php require ('reloj.php'); ?>//llamo al archivo donde se ejecuta el reloj

Supongo que para arreglar el problema sobran la mitad de los codigos que os he mostrado pero prefiero dejar claro el proceso.

A ver si me podeis echar una mano, porfa, que llevo varios dias con lo mismo y no hay manera. Muchas gracias por vuestro tiempo.

1 saludo!
  #2 (permalink)  
Antiguo 26/11/2011, 10:17
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 3 meses
Puntos: 14
Respuesta: problema con datos en div que ha sido borrado previamente

La primera vez que ejecutas el reloj también se muestra 2 veces?

Puedes fijarte en la consola, con firebug(en firefox) o en chrome, cual es el contenido que devuelte "activarreloj.php", porque puede ser que ahí venga 2 veces el reloj y el remove ya lo habías echo previamente.
  #3 (permalink)  
Antiguo 26/11/2011, 12:36
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: problema con datos en div que ha sido borrado previamente

Hola kokoou. Muchas gracias por contestar.

Pues la primera vez que se ejecuta lo hace perfecto.

Solo ocurre al pulsar el boton. De hecho (no lo habia comprobado antes) cada vez que pulso el boton se muestra una vez mas el reloj. Asi, al pulsar 3 veces el boton, se muestran 4 relojes.

Una cosa que quizas no haya explicado con suficiente claridad: los divs se muestran una vez (como debe suceder) pero en ellos se muestran 2 o mas relojes a la vez. Es decir, alternan los 2 relojes en el mismo div.

Respecto a firebug, no estoy muy acostumbrado a usarlo, pero en la consola no he detectado nada raro: ningun error, advertencia, informacion, ni informacion de depuracion....
  #4 (permalink)  
Antiguo 26/11/2011, 18:32
Avatar de livemusic  
Fecha de Ingreso: abril-2011
Ubicación: Lima - Chorrillos
Mensajes: 150
Antigüedad: 13 años
Puntos: 18
Respuesta: problema con datos en div que ha sido borrado previamente

Lo que sucede amigo, este problema es muy amenudo es que estas usando el metodo Live.... cambialo por el metodo click y dejalo algo asi...


Código PHP:
Ver original
  1. $("#boton-activar-reloj").click(function(){
  2. * * $.ajax({
  3. * * * * contentType: "application/x-www-form-urlencoded",
  4. * * * * type: "POST",
  5. * * * * url:'activarreloj.php',
  6. * * * * data: "",
  7. * * * * success: function(datos){
  8. * * * * * * $('.cuadro-reloj').remove();//aqui he probado de todo...
  9. * * * * * * $('#resultado').html(datos);
  10. * * * * }
  11. * * });
  12. });

Y si usas el Metodo Live, para que este se ejecute el Id despues de que el doom este listo ay,, tendriamos una solucion mas compleja.. intentalo de esta manera y me comentas.
  #5 (permalink)  
Antiguo 26/11/2011, 19:40
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: problema con datos en div que ha sido borrado previamente

Hola livemusic. Muchisimas gracias por contestar.

He probado la posible solucion que me comentas pero sigo exactamente igual...


es que ya me estoy volviendo loco con esto...
  #6 (permalink)  
Antiguo 26/11/2011, 21:04
Avatar de livemusic  
Fecha de Ingreso: abril-2011
Ubicación: Lima - Chorrillos
Mensajes: 150
Antigüedad: 13 años
Puntos: 18
Respuesta: problema con datos en div que ha sido borrado previamente

Código Javascript:
Ver original
  1. $("#boton-activar-reloj").click(function(){
  2.       $('#resultado').empty();
  3.       $.ajax({
  4.             type: "POST",
  5.             url:'activarreloj.php',
  6.             success: function(datos){
  7.                   $('.cuadro-reloj').remove();
  8.                   $('#resultado').html(datos);
  9.             }
  10.       });
  11. });

Dime que paso con este codigo... Interesante tu error esperemos la respuesta..

Última edición por livemusic; 26/11/2011 a las 21:12
  #7 (permalink)  
Antiguo 27/11/2011, 17:42
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: problema con datos en div que ha sido borrado previamente

Sigue sin funcionar...

Agradezco mucho tu interes livemusic.
  #8 (permalink)  
Antiguo 29/11/2011, 11:03
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 3 meses
Puntos: 14
Respuesta: problema con datos en div que ha sido borrado previamente

Prueba esto:

Código Javascript:
Ver original
  1. $("#boton-activar-reloj").live("click",function(){
  2.     $.ajax({
  3.             contentType: "application/x-www-form-urlencoded",
  4.             type: "POST",
  5.             url:'activarreloj.php',
  6.             data: "",
  7.             success: function(datos){
  8.                     $('.cuadro-reloj').remove();//aqui he probado de todo...
  9.                     // $('#resultado').html(datos);
  10.             }
  11.         });
  12. });

Y fijate si el reloj se elimina.

Si el reloj se elimina, correctamente el problema está en el php que estaría cargando más de un reloj, de lo contrario el problema está en que no se está eliminando el reloj insertado anteriormente.

Espero tu respuesta.

Última edición por kokoou; 29/11/2011 a las 11:42

Etiquetas: jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:32.