¿Cómo cambio la función en addEventListener.
//how do I turn this button.addEventListener('click', test) //into this button.addEventListener('click', test2)Estoy de acuerdo con el uso de bibliotecas js. Tengo la idea de que puedo usar removeEventListener y luego agregar otro detector de eventos, pero no sé cómo agregar un eventListener en javascript.
Para cambiar EventListeners en el botón, haría exactamente lo que sugirió
button.addEventListener("click", test) button.removeEventListener("click", test) button.addEventListener("click, test2)Un EventListener es esencialmente una de dos cosas.
Para que test2 sea un EventListener, solo necesitaría ser una de esas dos cosas.
Opción 1: En función
function test2(event) { console.log(event) } button.addEventListener("click", test2)Opción 2: como un objeto con una función handleEvent
const test2 = { "handleEvent": (event) => { console.log(event) } } button.addEventListener("click", test2)La documentación para respaldar esto se puede encontrar aquí:
https://developer.mozilla.org/en-US/docs/Web/API/EventListener
Esto se puede hacer con la delegación, solo asigne cada vez la función a una variable, luego llame a la variable desde la devolución de llamada, así:
let fn = () => { alert('1'); fn = () => alert('2'); }; button.addEventListener('click', function () { fn.apply(this, arguments); }); <button id="button">OK</button>