Skip to content
Advertisement

how to activated new function after button clicked for three times

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>
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement