Как создать кнопку-переключатель для переключения между двумя функциями в JavaScript

Чтобы заставить кнопку переходить между двумя функциями при нажатии в JavaScript, вы можете использовать несколько методов. Вот несколько вариантов:

Метод 1: использование логического флага

var flag = false;
function function1() {
  // Code for function 1
  flag = true; // Set the flag to true
}
function function2() {
  // Code for function 2
  flag = false; // Set the flag to false
}
function toggleFunctions() {
  if (flag) {
    function2();
  } else {
    function1();
  }
}

В этом методе мы используем логический флаг (flag), чтобы определить, какая функция должна выполняться при нажатии кнопки. Изначально флаг установлен в значение false. При нажатии кнопки вызывается функция toggleFunctions(), которая проверяет значение флага и соответственно вызывает соответствующую функцию.

Метод 2: использование счетчика

var counter = 0;
function function1() {
  // Code for function 1
  counter++;
}
function function2() {
  // Code for function 2
  counter--;
}
function toggleFunctions() {
  if (counter % 2 === 0) {
    function1();
  } else {
    function2();
  }
}

В этом методе мы используем счетчик (counter) для отслеживания количества кликов. Функция toggleFunctions()вызывается при нажатии кнопки и проверяет значение счетчика. Если счетчик четный, он вызывает функцию function1(); в противном случае он вызывает функцию2().

Метод 3. Использование массива функций

var functions = [function1, function2];
var currentFunction = 0;
function function1() {
  // Code for function 1
}
function function2() {
  // Code for function 2
}
function toggleFunctions() {
  functions[currentFunction]();
  currentFunction = (currentFunction + 1) % functions.length;
}

В этом методе мы сохраняем функции в массиве (functions) и используем переменную (currentFunction) для отслеживания текущей функции. Функция toggleFunctions()вызывается при нажатии кнопки и вызывает текущую функцию из массива. После этого он обновляет переменную currentFunction, чтобы она указывала на следующую функцию в массиве, используя оператор по модулю.