Foros del Web » Programando para Internet » Jquery »

Agregar <tr> a una tabla dinamicamente (problema con contador)

Estas en el tema de Agregar <tr> a una tabla dinamicamente (problema con contador) en el foro de Jquery en Foros del Web. Estimados, Estoy generando una tabla y le estoy dando la opcion al usuario de agregar màs filas si es que las requiere. Estoy generando el ...
  #1 (permalink)  
Antiguo 23/10/2013, 15:23
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 15 años, 11 meses
Puntos: 12
Agregar <tr> a una tabla dinamicamente (problema con contador)

Estimados,

Estoy generando una tabla y le estoy dando la opcion al usuario de agregar màs filas si es que las requiere.

Estoy generando el codigo y funciona. El problema esta que cuando borro una fila el contador de filas funciona de manera incorrecta.

Lo que pasa en lo siguiente. tengo un evento click en una clase .addnew esta clase se genera a partir del html inicial. Luego cada vez que se da click en .addnew se genera dinamicamente un <tr> en el cual se reemplaza esta clase .addnew por .remove. La clase .remove tiene como funcion borrar el <tr> segun corresponde (esto lo hace). El problema esta que cada vez que se hace click en un .remove el codigo se ejecuta más de una vez (se ejecuta por cada .remove que existe).

Código Javascript:
Ver original
  1. $('.addnew').click(function(e) {
  2.    //codigo para copiar el tr --> ver en http://jsfiddle.net/REk5r/1/
  3.  
  4.    $('.remove').on('click', function(e) {
  5.       e.preventDefault();
  6.       $(this).parent().parent().remove();
  7.       console.log('click');
  8.    })
  9. });

Pueden replicar el problema asi
Ingresan a http://jsfiddle.net/REk5r/1/
Le dan a "Agregar" en tabla 2 veces y luego le dan a borrar y luego nuevamente a agregar, veran que el numero de la fila cambia a un numero negativo.


Espero que me puedan ayudar.
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.

Última edición por xalupeao; 23/10/2013 a las 16:06
  #2 (permalink)  
Antiguo 24/10/2013, 10:31
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 9 meses
Puntos: 14
Respuesta: Agregar <tr> a una tabla dinamicamente (problema con contador)

Tu problema es solo ver con un poco de lógica: cada ves que creas una nueva fila esta se creara con la función de remover, cuando vuelves agregar otra fila, pues tomas la ultima y la vuelves a generar incluido la función de remover y nuevamente le agregas otra función para remover.. y así correlativamente, la cuarta ves que agregues tendrás 4 veces ejecutandose la función remover.

Te aconsejo dos soluciones:

1.- Copia siempre de la primera fila no de la ultima.
2.- Saca esa función que esta dentro del copiado y ponlo fuera.

Saludos.
__________________
:policia: Uno para todos y todos para uno.

Etiquetas: dinamicamente, tabla
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 12:46.