Чередование функций 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 ответ
Помимо некоторых странных вещей в вашем коде, если вы на самом деле не забыли определить функции, на которые жалуется скрипт, проблем быть не должно.
Исправление странных вещей:
-
isEven
функция полностью избыточна. - Выражение
return condition ? true : false
такой же какreturn condition
, - Поскольку логическое значение может быть
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>