tengo una tarjeta que se crea cada vez que se presiona un botón, una de las partes de la tarjeta es el icono de eliminar. Quiero eliminar la tarjeta cuando se hace clic en el botón Eliminar. estoy usando este código:
let icon = document.createElement('span'); icon.className = "span_x"; document.getElementsByClassName('close')[0].appendChild(icon); document.getElementsByClassName('span_x')[0].innerHTML = '<i class="fa fa-remove"></i>'; icon.addEventListener('click', removeTask());probé la última línea de código de varias maneras, como:
icon.onclick = function() icon.setAttribute("onclick","removeTask()");pero independientemente de lo que esté intentando, siempre ejecuta la función al crear la tarjeta (tarea), aunque no hice clic en el icono. Espero estar siendo lo suficientemente claro. gracias por su ayuda.
Prueba esto:
xBtn.addEventListener('click', removeTask);Tienes que quitar los soportes. Está invocando la función de inmediato, cuando solo necesita pasarle una referencia
icon.setAttribute("onclick", removeTask) const removeTask = () => { console.log('clicked') } let icon = document.createElement('span'); icon.className = "span_x"; document.getElementsByClassName('close')[0].appendChild(icon); document.getElementsByClassName('span_x')[0].innerHTML = '<i class="fa fa-remove"></i>'; icon.addEventListener('click', removeTask); .close { width: 100px; height: 100px; background: green; } .span_x:after { content: 'Click' } <div class="close"></div>