Есть ли способ, которым я мог бы назначить 2 отдельные функции на 2 по нажатию кнопки? - PullRequest
0 голосов
/ 23 января 2019

Я хотел: воспроизвести анимацию при первом щелчке и остановить ее при втором щелчке по той же кнопке.Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Вы можете сделать это

function performAction(event){
  
  var button = event.currentTarget;
  var action = button.innerHTML;

  if(action == "Play"){
  
     button.innerHTML = "Stop"
    //play animation
    
   
  } else {
    button.innerHTML = "Play"
    //stop animation
  }
  
}
<div>
  <button  onclick="performAction(event)" >Play</button>
</div>
0 голосов
/ 23 января 2019

Вот простейшее решение с использованием замыканий, вы должны узнать больше о том, как замыкания работают.

function generateMyStatefullFunction(){
  var someState = false;
  
  return function theActualFunctionThatDoesThings(){
    if (someState){
      console.log("State will be set to false, next click wont trigger this message");
    }
    someState = !someState;
  }
}

var onClickHandler = generateMyStatefullFunction();

document.getElementById("button").addEventListener('click', onClickHandler);
<button id="button"> Fire every second click</button>
...