2011-08-26 27 views
6
function countDownRound() { 
    if(myRoundTimeRemaining >= 0){ 
     var secs = myRoundTimeRemaining; 
     if(secs < 10) 
     { 
      secs = "0" + secs; 
     } 
     $("#countdown").html(':'+secs); 
     CountdownTimer = setTimeout(countDownRound, 1000); 
     myRoundTimeRemaining--; 
    } 
    else{ 
     $("#countdown").html(''); 
    } 
} 

上記のコードは、Firefoxで予想されることです。減少する数が毎秒 "カウントダウン"要素に表示されます。カウントダウンタイマーはChrome/Safariで正しくレンダリングされませんが、Firefoxでは正常に表示されます

SafariとChromeでは、コードは正しく実行されますが、画面上の要素は変更されません。ブラウザウィンドウのサイズを変更するなど何かが発生した場合、要素は正しく更新されます。

これは、ある種の最適化またはスレッドベースの問題のようですが、解決策が見つかりません。

+4

は私のためにうまくいきます。http://jsfiddle.net/br4uK/ –

+0

私にとってもうまく動作します。 ChromeとSafariのどのバージョンを使用していますか? –

+0

興味深い。 JQueryのアニメーションスタックと何か関係があるかもしれません。私はこの警告を見つけました。「requestAnimationFrame()の性質のため、setIntervalまたはsetTimeoutループを使用してアニメーションをキューに入れないでください。このオブジェクトはアニメーション化されていませんが、他のオブジェクトのいくつかは... –

答えて

0

Chrome、Safari、Firefoxでもうまく動作します。

おそらく、あなたはあなたの結果を表示するには、HTMLタグを使用する必要が `tをこの場合は、テキスト()HTML()よりも優れて動作する可能性があります。

)は、(代わりにHTML

$("#countdown").text(':'+secs); 

を使用してみてください。

OBS:あなたの手術系の不安定な子供たちも、ブラウザのレンダリングに影響を与えているようです。誰かがこれを確認したり拒否したりできますか?

関連する問題