При нажатии срабатывала одна часть кода, а при повторном вторая часть кода JavaScript
Мне нужно чтобы при нажатии на кнопку работала первая часть кода.
check = genirateTasks()
const summ = check.reduce((partial_sum, a) => partial_sum + a, 0);
console.log(summ);
А при повторном нажатии вторая часть кода.
if(taskAnswer.value == ){
console.log(1);
}else{
console.log(2);
}
Можно ли это сделать на чистом JS.
Вот весь код функции
function checkUserAnswer(){
check = genirateTasks()
const summ = check.reduce((partial_sum, a) => partial_sum + a, 0);
console.log(summ);
if(taskAnswer.value == ){
console.log(1);
}else{
console.log(2);
}
}
И ещеё index.html
<button onclick="checkUserAnswer()" class="btn-info" id="check-btn">Начать!</button>
Ответы (2 шт):
Автор решения: HTO HOT
→ Ссылка
Вот как один из вариантов.
Для двух нажатий:
const input = document.querySelector('input');
input.addEventListener('click', foo);
function foo(){
if(!this.classList.contains('active')){
console.log('1-ая часть кода')
////код
this.value = 'закончить'
this.classList.add('active')
}else{
console.log('2-ая часть кода')
this.value = 'Начать!'
////код
this.classList.remove('active')
}
}
<body>
<input type="button" value="Начать!">
</body>
Для двух нажатий + запрет.
const input = document.querySelector('input');
input.addEventListener('click', foo);
function foo(){
if(!this.classList.contains('active')){
console.log('1-ая часть кода')
////код
this.value = 'закончить'
this.classList.add('active')
}else{
console.log('2-ая часть кода')
this.value = 'ОТКЛЮЧЕНО'
////код
this.disabled = true
}
}
<body>
<input class="one" type="button" value="Начать!">
</body>
Автор решения: MrYogurt
→ Ссылка
Имхо, самый простой способ, воспользоваться генератором, подробнее здесь.
Пример из документации:
function* generateSequence() {
yield 1;
yield 2;
return 3;
}
let generator = generateSequence();
let one = generator.next();
alert(JSON.stringify(one)); // {value: 1, done: false}