Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Duda con la variable pacientes y la variable tabla en el video

Con el primer metodo:

var pacientes = document.querySelectorAll(".paciente");
pacientes.forEach(function(paciente) {
    paciente.addEventListener("dblclick", function() {
        this.remove();
    })
})

Se vio que no funcionaba eliminar pacientes que se hayan adicionado por el usuario porque el programa unicamente declara una vez a var pacientes.

Pero cuando se usa el segundo metodo:

var tabla = document.querySelector("#tabla-pacientes");

tabla.addEventListener("dblclick", function(event) {
    event.target.parentNode.remove();
})

Esta vez si se puede eliminar pacientes que se hayan adicionado por el usuario pero no entiendo por qué si tambien se esta declarando solo una vez var tabla y no cada vez que se hace doble click sobre ella.

1 respuesta
solución!

Hola Luis, Yo creo que se debe a lo siguiente...

En el 1er caso la sentencia recorre cada paciente y le agrega un escuchador de eventos a item en particular. Entonces, se carga la página y todos los pacientes que ya estaban cargados en el html tienen un escuchador de eventos. Pero luego cuando se agrega uno nuevo, ese nuevo no tiene ningun escuchador de eventos.

En el 2do caso, la sentencia no recorre nada, la tabla entera es la que tiene el escuchador de eventos (en el punto anterior cada item o paciente tenía un escuchador de eventos individual). Entonces, aunque posteriormente le agregues un nuevo paciente, el addEventListener está escuchando constantemente a la tabla, y cuando le hacés doble clic, ejecuta la función de acuerdo a lo que la tabla tenga en ese momento. Por esto es que el 2do caso sí borra los nuevos pacientes agregados.

Espero haber sido de ayuda.

Saludos!