Estoy tratando de crear un botón que clone un elemento 3 veces, pero cuando intento cambiar los clones onclick() , no clona el objeto.
var html = document.getElementById("kaart" + kaart_id).innerHTML; kaart_id = kaart_id + 1; var clone = document.createElement("div"); clone.innerHTML = html; clone.id = "kaart" + kaart_id; clone.classList = "memory_kaart"; clone.onclick = kaart(kaart_id); let tekst = clone.childNodes[1]; tekst.textContent = kaart_waarde; tekst.id = "kaart" + kaart_id + "_tekst"; document.getElementById("memory_speelveld").appendChild(clone); kaart_waarde = kaart_waarde + 1; Estoy tratando de cambiar onclick a kaart(kaart_id) que es mi otra función
Está llamando a la función kaart(kaart_id) en su asignación, por lo que el controlador de eventos no se activa. En su lugar, debe pasar una referencia a la función, no llamarla.
Asigne una referencia a la función al controlador onclick asignando la declaración de la función:
clone.onclick = function kaart(kaart_id) { // function statements };o asignando la declaración de función a una variable primero, luego asignando la variable al controlador de eventos:
let kaartFunc = function kaart(kaart_id) { // function statements } clone.onclick = kaartFunc; Una regla general es; si la función no tiene la palabra clave de function antes de su nombre y tiene paréntesis () después de su nombre, está llamando a la función, por ejemplo, kaart(kaart_id) .