Entonces, estoy tratando de crear un botón que, cuando se presiona, cambia el contenido de una página html y actualiza el botón para cambiar su próxima función. Sin embargo, cada vez que uso .onclick , termino imprimiendo el "2" en la consola mientras aún presiono el botón por primera vez. También intenté usar .click , y lo único que puedo encontrar que funciona es configurar la función directamente, sin embargo, esto es desordenado y largo. Me preguntaba si había otra forma de hacer esto con un código más limpio.
html:
<!DOCTYPE html> <html lang="en-US"> <body> <script src="Path_To_File"></script> <p id="text"> <!-- text here --> </p> <button id="b1" type="button" onclick="pageFlip(1)">Button</button> </body> </html>JS:
function pageFlip(page) { var p = document.getElementById("text"); var b1 = document.getElementById("b1"); var b2 = document.getElementById("b2"); switch (page) { case 1: p.innerHTML = "newText"; b1.innerHTML = "newText"; b1.onclick = pageFlip(2); break; case 2: console.log("2"); break; } }Que funciona:
b1.onclick = function changeButton() { pageFlip(2) }