Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

214
Vistas
Quiero agregar nuevas tareas y editarlas. Cuando trato de actualizar 1 tarea, todas las tareas para las que se hizo clic en el icono de edición anteriormente se actualizan. ¿Porque?
  1. saveButton tiene 2 controladores de eventos para "hacer clic", 1 para actualizar, 1 para agregar una nueva tarea
  2. editThis () es un controlador de eventos para editar el ícono, copia los detalles de la tarea seleccionada en los campos de entrada para tomar la actualización. saveButton se adjunta con un controlador de eventos anónimo que guarda la actualización en localStorage, UI
  3. Los problemas para los que se hizo clic en el "icono de edición" se actualizan en lugar de 1 y también se agrega una nueva tarea además de la actualización.
 /* default value is 0, indicates that new task should be added when saveButton is clicked */ let currentOperation = 0; function editThis(event) { currentOperation = 1; let saveButton = document.getElementsByClassName("form__submit")[0]; // this variable is used to identify which task needs to be updated let currentItemId = event.target.parentNode.dataset.dataId; // each task is stored in localStorage as task[i]= JSONObject.stringify() let selectedTask = JSON.parse(localStorage.getItem("task[" + currentItemId + "]")); // task details are transferred to input fields to edit inputs[0].value = selectedTask.title; inputs[1].value = selectedTask.date; inputs[2].value = selectedTask.status; saveButton.addEventListener("click", function() { if (currentOperation == 1) { //inputs[x] = document.getElementsByClassName("input")[x] let updatedObject = { title: inputs[0].value, date: inputs[1].value, status: inputs[2].value }; localStorage.setItem("task[" + currentItemId + "]", JSON.stringify(updatedObject)); document.getElementsByClassName("todo-container")[currentItemId].firstChild.nodeValue = updatedObject.title + " " + updatedObject.date + " " + updatedObject.status;// .todo-container has 2 children nodes, 1st contains task details and 2nd contains edit icon to which editThis event handler is attached setTimeout(function () { currentOperation = 0; }, 20000); } }); }

Esta imagen muestra el ícono de edición de ubicación, el botón Guardar, el contenedor de tareas pendientes.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda