Я написал этот метод, который переворачивает карту лицевой стороной вверх onClick
, а затем отображает метод alert
. Однако по какой-то причине, когда я нажимаю на карту, она остается лицевой стороной вниз, и отображается метод alert
. Затем, когда я закрою предупреждение, карта перевернется.Javascript - предупреждение перед событием клика
Как мне перевернуть карту, а затем отобразить alert
?
...
newCard.addEventListener('click', flipCard);
...
//method to flip card face up
function flipCard() {
cardsInPlay.push(this.getAttribute('data-card'));
if(this.getAttribute('data-card') == 'king'){
this.innerHTML = '<img src="my_king.png" alt="King of Spades" />';
}
if(this.getAttribute('data-card') == 'queen'){
this.innerHTML = '<img src="my_queen.png" alt="Queen of Spades" />';
}
if (cardsInPlay.length === 1) {
alert("Congrats, you flipped a card");
}
}
Значение по 'src' атрибут только начинается изображение«загрузки»в фоновом режиме. Сценарий будет продолжен после того, как загрузка будет поставлена в очередь. Функция 'alert()' приостанавливает выполнение других действий. Попробуйте поставить предупреждение в короткий 'setTimeout'. (т. е. 'setTimeout (function() {alert (« Поздравляем, вы перевернули карту »)}, 1);'). Есть и другие способы сделать это - например, добавление обработчика событий к «onload» для изображений. – Tibrogargan