Foros del Web » Programando para Internet » Jquery »

Inputs number: borrar inputs y actualizar total

Estas en el tema de Inputs number: borrar inputs y actualizar total en el foro de Jquery en Foros del Web. Hola gente! Estoy armando un código que obtiene datos pasados por cookies y los refleja en un input de números. Esto tiene la opción de ...
  #1 (permalink)  
Antiguo 03/08/2016, 08:40
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Exclamación Inputs number: borrar inputs y actualizar total

Hola gente!

Estoy armando un código que obtiene datos pasados por cookies y los refleja en un input de números. Esto tiene la opción de borrar el elemento que contiene ese input.

El problema es que al borrar ese elemento, la función para realizar la suma no refleja los cambios. Dejo un JSFiddle con un MCVE.

https://jsfiddle.net/43m3h8h7/

Al entrar, apreta la "x" para ocultar (y posteriormente borrar) el elemento y por lo tanto el input. No actualiza el total.

Cualquier ayuda es bienvenida.

jrasias d ante braso
__________________
¿Te sirvió la respuesta? Deja un +1
  #2 (permalink)  
Antiguo 03/08/2016, 10:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Inputs number: borrar inputs y actualizar total

Dos cosas:

1. Te faltó eliminar al elemento padre del botón de borrado:
Código Javascript:
Ver original
  1. esto.parent().remove();

2. Luego de la eliminación del elemento, debes ejecutar la llamada a la función en la misma función de completado del efecto:
Código Javascript:
Ver original
  1. esto.parent().css("opacity", "0.3").stop().slideUp(300, function() {
  2.     esto.parent().remove();
  3.     obtenerTotal();
  4. });

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 03/08/2016, 10:39
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 10 años, 7 meses
Puntos: 39
Respuesta: Inputs number: borrar inputs y actualizar total

Son dos cosas:

1) En la línea 14 la variable esto debería estar haciendo referencia al contenedor .elemento osea $(this).parent() ya que vas a necesitar acceder a ese elemento en dos ocasiones, uno, para ocultarlo visualmente y dos para eliminarlo junto a todos sus nodos.
En tu función, esto hace referencia al span y solo eliminas el span, por eso cuando vuelve a hacer la suma, sigue tomando en cuanta el input que se ocultó pero sigue en el DOM.

2) El callback de la función slideUp para saber en que momento se ha terminado la animación, se ejecuta con un timer, las otras funciones que estén en el mismo scope no esperan que se ejecute el callback para ejecutarse, es decir el slideUp y el obtenerTotal() se ejecutan casi al mismo tiempo antes de borrar el input, por eso necesitas mover tu función obtenerTotal() dentro de la función callback, luego de remover el elemento.
__________________
velarde23.com - Soluciones Web

Última edición por siddartha23; 03/08/2016 a las 11:01
  #4 (permalink)  
Antiguo 03/08/2016, 11:13
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Inputs number: borrar inputs y actualizar total

Oh, por supuesto!! Ambos tenéis razón, muchísimas gracias. Solucionado entonces :)
__________________
¿Te sirvió la respuesta? Deja un +1

Etiquetas: inputs, number
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 05:01.