#javascript #jquery #циклы
Подскажите, как исправить код, чтобы при каждом клике по btn_refresh запускался цикл
и в консоле выводился результат. Т.е. первый клик > выводит "one", второй клик > выводит
"two", третий клик > выводит "three".
В данный момент выводятся одновременно 3 варианта.
var btn_refresh=$("#review__content__refresh"),
fullReviewArray=[0,1,2];
btn_refresh.click(function(){
for(var i = 0; i < 3; i++)
{if(i==0){
console.log("one");
}
else if(i==1){
console.log("two");
}
else if(i==2){
console.log("three");
}
}//конец for
});//конец click to btn_refresh
Ответы
Ответ 1
Непонятно, зачем цикл. var btn_refresh = $("#review__content__refresh"); btn_refresh.click(function() { var counter = this.clickCounter; if (counter) this.clickCounter = counter + 1; else this.clickCounter = 1; if (this.clickCounter > 3) this.clickCounter = 1; switch (this.clickCounter) { case 1: console.log("one"); break; case 2: console.log("two"); break; case 3: console.log("three"); break; default: console.log("not in [1,2,3]"); } }); //конец click to btn_refreshОтвет 2
Можно еще и так: 'use strict'; function* num() { var values = ['one', 'two', 'three']; var i = 0; while (i < 3) { yield values[i]; i++ } } function showNext() { console.log(iterator.next().value); } const iterator = num();Ответ 3
на native js если интересно с использованием делегирования событий - http://codepen.io/tokamame/pen/rmzzOK?editors=1010 document.addEventListener("load", onLoad()); var but = document.getElementById('button'); var clear = document.getElementById('clear'); var out = document.getElementById('output'); var counter = 1; function onLoad() { document.addEventListener("click", showClick); } function showClick(e) { if (e.target.innerHTML === "Кликни меня") { out.innerHTML = 'Вы нажали на кнопку "Кликни меня" ' + counter + ' раз'; counter++; } else if (e.target.innerHTML === "Очистить счетчик") { out.innerHTML = 'Вы ни разу ни кликали'; counter = 1; } else { console.log('Что-то пошло не так'); } }Вы ни разу ни кликалиОтвет 4
Ещё вариант) let btn = document.querySelector('button'); let out = document.querySelector('output'); btn.addEventListener('click', function() { let i = btn.i || 0; console.log(`${i%3+1} ticks`) btn.i = ++i; }); С one/two/three: let btn = document.querySelector('button'); let out = document.querySelector('output'); let map = ['one', 'two', 'three']; btn.i = 0; btn.addEventListener('click', function() { btn.i %= 3; console.log(map[btn.i++]) });
Комментариев нет:
Отправить комментарий