Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Bug] error de tipo Uncaught TypeError

Uncaught TypeError: Cannot read properties of undefined (reading 'target') me salio ese error al implementar el termino target, si bien estoy siguiendo la logica del programa, no entiendo ese error. el codigo:

const btn = document.querySelector("[data-form-btn]");
console.log(btn);

const createTask = (evento)=>{
    evento.preventDefault();
    const input = document.querySelector("[data-form-input]");
    const value = input.value;

    const list = document.querySelector("[data-list]");
    const task = document.createElement("li");
    task.classList.add("card");
    input.value = "";

    const taskContent = document.createElement("div");

    console.log(checkComplete());


    const titleTask= document.createElement("span");
    titleTask.classList.add("task");
    titleTask.innerText = value;
    taskContent.appendChild(checkComplete());
    taskContent.appendChild(titleTask);

    const content = `
            <i class="fas fa-trash-alt trashIcon icon"></i>`
    // task.innerHTML = content;
    task.appendChild(taskContent);
    list.appendChild(task);
    console.log(content);
};
console.log(btn);
//arrow function o funciones anonimas
btn.addEventListener("click", createTask)

const checkComplete = ()=>{
    const i = document.createElement("i");
    i.classList.add("far","fa-check-square","icon");
    i.addEventListener("click",completeTask());
    return i;
}

const completeTask = (event)=>{
    const element = event.target;
    element.classList.add("fas");
    element.classList.add("completeIcon");
    element.classList.remove("far");
}
2 respuestas
solución!

Hola Miguel, espero que estés bien.

En la función checkComplete, hay un error en la línea:

i.addEventListener("click",completeTask());

En lugar de pasar la función completeTask como argumento, se está llamando a la función inmediatamente agregando los paréntesis () al final. Para solucionarlo, simplemente debes eliminar los paréntesis:

i.addEventListener("click", completeTask);

De esta forma, la función completeTask se pasará como argumento a addEventListener y se ejecutará solo cuando se haga clic en el elemento.

Si tienes alguna duda, no dejes de preguntar. ¡Estamos aquí para ayudarte!.

¡Saludos!

Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!

dale era eso, muchas gracias, saludos.