То, что я пытаюсь сделать, кажется таким простым, но я не могу понять это.
Вот базовый сценарий c:
Функция A
Функция B запускается при нажатии кнопки
Мне нужно отключить функцию A во время работы функции B
Затем, когда функция B будет завершена, снова включите функцию A (туда, откуда мы начали).
Я настроил очень базовую c ручку, чтобы помочь проиллюстрируйте то, чего я пытаюсь достичь. Вы можете игнорировать тот факт, что функции добавляют классы, это было просто для того, чтобы сделать что-то.
https://codepen.io/andystent/pen/yLNbyjZ?editors=1111
Так что в этом примере желаемый сценарий будет :
Опять же, игнорируйте изменения цвета и добавление / удаление классов - это просто, чтобы что-то произошло.
JS из примера Pen:
var block = document.getElementById("block");
var button = document.getElementById("button");
//Function A: the main function that is active by default - I need this function disabled/stopped when the button is clicked, and then re enabled when Function B is complete.
$(document).ready(function(){
block.classList.add("green"); //adding class is only for example
});
//Function B
$(button).click(function(){
block.classList.add("red"); //adding class is only for example
});
ОБНОВЛЕНИЕ 1
Это моя работа, основанная на ответах от Джаспера и Аддера .
Использование отдельных функций прекрасно работает, но когда я нажимаю кнопку, работает console.log, но я все равно могу делать то, что происходит в операторе if, как будто active = true.
В этом Например, когда я нажимаю кнопку, она должна изменить активный на «ложь» и, следовательно, не допустить, чтобы содержимое оператора if работало. Я надеюсь, что это имеет смысл ....
var aActive = true;
// FUNCTION A - Active is True
function fA(){
aActive = true;
console.log("active = true");
};
//FUNCTION B - Active is False
function fB(){
aActive = false;
console.log("active = false");
}
//When clicking Nav link run Function B (active false)
var navLinks2 = document.querySelectorAll("#nav-wrap nav a")
navLinks2.forEach(function (navLink2) {
navLink2.addEventListener('click', function () {
fB();
//fA();
});
});
//Only do this if Active is TRUE
if(aActive) {
//do something
} //end if active