i want to add new function after i clicked the button 3 times and erase/remove the former function
html file:
<body> <div id="background"> <p>this background white, before</p> </div> <button class="btn-1">change color</button> </body>
javascript:
const btn1 = document.querySelector(".btn-1") ; const bg = document.getElementById("background") const toRed = ()=>{ bg.style.backgroundColor = "red"; } const toBlue = ()=>{ bg.style.backgroundColor = "steelblue"; } btn1.addEventListener('click', toRed);
// i want this btn1 have function to clear function toRed and add toBlue instead after clicked 3 times
Advertisement
Answer
remove the event listener and add a new one when it was clicked three times:
const btn1 = document.querySelector(".btn-1"); const bg = document.getElementById("background"); var redClicked = 0; const toRed = ()=>{ bg.style.backgroundColor = "red"; redClicked++; if (redClicked >= 3) { btn1.removeEventListener('click', toRed); btn1.addEventListener('click', toBlue); } } const toBlue = ()=>{ bg.style.backgroundColor = "steelblue"; } btn1.addEventListener('click', toRed);
<body> <div id="background"> <p>this background white, before</p> </div> <button class="btn-1">change color</button> </body>