Как сделать, чтобы при нажатии на одну кнопку, поочередно выполнялись две разные функции?

Как сделать, чтобы при первом клике по кнопке, выполнялась первая функция, а при втором клике по этой же кнопке, выполнялась вторая функция.
При третьем клике – выполнялась первая функция и т, д.

Я так понял, нужно что здесь использовать . toggle()

Но я не разобрался, как это работает.
Подскажите пожалуйста на конкретном примере, буду очень благодарен!

//При первом клике должно происходить вот это:
    $(".btn").on("click", function () {
        $(this).find(".figure").animate({
            "opacity": "1",
            "top": "-25px"
        },500);
        $(this).find(".shadow").animate({
            "opacity": "0.5",
            "filter": "blur(5px)"
        },500);
    });

///При втором клике, должно происходить вот это (начальные свойства):

    $(".btn").on("click", function () {
        $(this).find(".figure").animate({
            "opacity": "0",
            "top": "0px"
        },500);
        $(this).find(".shadow").animate({
            "opacity": "1",
            "filter": "blur(1px)"
        },500);
    });
  • Вопрос задан
  • 1050 просмотров
Решения вопроса 1
nuykon
@nuykon
Full Stack Developer
jQuery 1.9 и выше
<script>
function toggleFunc(){
  let el = this;
  return [
    function() { 
      console.log('первый клик');
    },
    function() { 
      console.log('второй клик');
    }
  ][el.tog^=1]();
}

$("button").click( toggleFunc );
</script>


Для старой версии jQuery ниже 1.9
<script>
    $("button").toggle(
      function () {
        console.log('первый клик');
      },
      function () {
        console.log('второй клик');
      },
      function () {
        console.log('можно и третий');
      },
    );
  </script>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы