2016-08-06 6 views
0

これはフリップコインの一部のページです コインの現状と将来の状態に応じて、CSSのコインのアニメーションを作成しました。 関数私は、コインをデフォルトの状態に戻して、新しいCSSのアニメーションを使用して将来の状態に設定しなければならない 問題は..私が警告を追加するまで動作しなかったコードを実行したとき( "hi" )ライン...全く分からないなぜ、私はこの問題を解決したい私は、ユーザーが[OK]毎回をクリックしたくないので、彼はコインを投げる必要がidを前後に変更する機能

var flipCoin = function() { 
flips ++; 
var result = 1; 
if (document.getElementById("fromHeadsToHeads") !== null) { 
document.getElementById("fromHeadsToHeads").id = "defaultHeads"; 
} 

switch (result) { 
    case 1 : 

     if (document.getElementById("defaultHeads") !== null) { 
      alert("hi") 
      document.getElementById("numFlips").innerHTML = flips; 
      document.getElementById("defaultHeads").id = "fromHeadsToHeads"; 
     } 
    break; 
} 
+0

なぜswitch文がありますか? 'result'は常に' 1'になります。 – 4castle

+0

[なぜjQueryやgetElementByIdなどのDOMメソッドが要素を見つけられないのですか?](http://stackoverflow.com/questions/14028959/why-does-jquery-or-a-dom-method-such- as-getelementbyid-not-find-the-element) – 4castle

+0

あなたは単純にできません。 IDを変更すると、オブジェクトへの参照は失われます – fubbe

答えて

0

私が持っている問題は、ブラウザが再していない可能性が高いですレンダーされたthあなたの間にDOMがまだあります。私とあなたはgetElementByIdを呼び出します。

何かを警告すると、ブラウザはおそらくレンダリングを開始します。

あなたがしようとしていることについては、はるかに良い方法がありますが、DOMが直ちにレンダリングされないという問題に対処するには、警告に従ってすべてのものを新しい匿名関数setTimeout次のような並べ替え:

SetTimeout(function(){...}、100)変数スコープを正しく取得する必要がありますが、これによりDOMに更新の機会が与えられます。

+0

魅力のように働いて、おいしいお兄さん –

関連する問題