Полный код здесь;https://codepen.io/3noki/pen/xjyErQ?editors=0011
Я хочу, чтобы, когда две карты открыты, сделать паузу, а затем перевернуть их, если не совпадают.Но в настоящее время я могу продолжать нажимать, пока этот интервал работает / до того, как карты перевернутся, что вызывает проблемы.
Есть ли способ сделать все или новый щелчок, чтобы дождаться завершения интервала?
$(".card").on("click", function cardFlip() {
if (!this.classList.contains('open') && openedCardsList.length <= 2) {
this.classList.toggle('open');
openedCardsList.push(this);
if ( openedCardsList.length == 2) {
checkForMatch();
}else {}
}
else {}
});
function checkForMatch() {
let a = $('i.fa', openedCardsList[0]).data('fa');
let b = $('i.fa', openedCardsList[1]).data('fa');
let eq = ( a && b && a === b );
if (eq) {
$(openedCardsList[0]).removeClass('open').addClass('match');
$(openedCardsList[1]).toggleClass('open match');
openedCardsList = [];
matched++;
}
else {unFlip();}
}
setInterval( function unFlip() {
openedCardsList[0].classList.toggle('open');
openedCardsList[1].classList.toggle('open');
openedCardsList = [];
}, 3000);