Чередование функций jQuery по нажатию кнопки

Я пытаюсь получить кнопку, чтобы чередовать 2 функции, выполняя разные функции при каждом нажатии. Вот код, который у меня есть:

var count = 0;
$("#pijlrechts").click(function() {
    count++;
    var isEven = function(someNumber) {
        return (someNumber % 2 === 0) ? true : false;
    };
    if (isEven(count) === false) {
        $firstFunction();
    } else if (isEven(count) === true) {
        $secondFunction();
    }   
});

Он говорит мне, что функции не определены, я сделал эти функции ранее в скрипте.

1 ответ

Помимо некоторых странных вещей в вашем коде, если вы на самом деле не забыли определить функции, на которые жалуется скрипт, проблем быть не должно.

Исправление странных вещей:

  1. isEven функция полностью избыточна.
  2. Выражение return condition ? true : false такой же как return condition,
  3. Поскольку логическое значение может быть true или же false нет необходимости в if...else if, Просто проверьте, является ли условие true (или же false) и использовать else для противоположного случая.

Код:

/* ----- JavaScript ----- */
var count = 0;

$("#pijlrechts").click(function() {
  /* Increment the counter. */
  count++;
  
  /* Execute the correct function based on the value of the counter. */
  count % 2 ? $firstFunction() : $secondFunction();
});

/* The functions your script complains about. */
function $firstFunction () { console.log("first") }
function $secondFunction () { console.log("second") }
<!----- HTML ----->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id = "pijlrechts">Click</button>

Другие вопросы по тегам