2016-11-14 8 views
0

カードを表向きにして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"); 
     } 

} 
+0

危険な道のようなものをやっているでしょう。ダウンロードがキューに入れられた後、スクリプトは続行されます。 'alert()'関数は他のアクティビティの実行を一時停止します。警告を短い 'setTimeout'に入れてみてください。 (すなわち、 'setTimeout(function(){alert("あなたはカードを反転しました ")、1);')。画像の "onload"にイベントハンドラを追加するなど、これを行う他の方法もあります。 – Tibrogargan

答えて

0

私が理解したところ、正しい方法は約束とコールバックを使用することです。あなたには、いくつかの仕事はすなわち、あなたは現在のカードのinnerHTMLプロパティを変更した行われた後にのみ、アラートを作成する機能を実行することができる方法

https://www.sencha.com/blog/asynchronous-javascript-promises/

。 `src`属性だけで、背景の画像を、「ダウンロード」を開始し設定

setTimeout(function() { 
    alert("Congrats, you flipped a card"); 
}, 500); 
関連する問題