2017-03-27 14 views
2

私はターンベースの戦闘ゲームのイベント履歴を記録するためにスクロール可能なメッセージログを作成していますが、メッセージログが10以上のメッセージにまたがることは望ましくありません。しかし何らかの理由で、関数を複数回呼び出した後に、リストから0番目のリスト要素を削除しません(カウントが10を超えると必ず)。代わりにリストの一番下にそれらを積み重ねて、スクロールメニューを不当な長さに伸ばします。私は多くの質問している:...私は 」内のリストを入れているので、それがかもしれリスト要素を順序なしリストから削除するにはどうすればよいですか?

  1. 私はこの問題を解決するだろう/リストを順不同リストから 要素を削除する別の方法がありますどのように疑いnav "タグ..
  2. スクロール可能なメッセージログを作成する方法はありますか?
  3. このスクロールメッセージのための方法は、 が のうち、(リストの一番下に新しいのentiresを置くことに反対するとして、それは、視界の外歴史をプッシュするように、上部に新しい のentiresを配置するためにログありユーザーがスクロールしない限り)

ありがとう!

HTML:

<nav> 
<ul id="battleLog"></ul> 
</nav> 

JS:あなたのcount変数がローカルにスコープされているためです

function updateBattleLog(x) { 
    var count = count+1; 
    var node = document.createElement("LI"); 
    var textnode = document.createTextNode(x); 
    node.appendChild(textnode); 
    document.getElementById("battleLog").appendChild(node); 



    if (count > 10) { 
     var list = document.getElementById("battleLog"); 
     list.removeChild(list.childNodes[0]); 
     count = count-1; 
    } 
} 
+0

'VAR回数= 1 +カウントを参照してください;'エラーをスローする必要があります... – evolutionxbox

+0

@evolutionxboxを、それがVaRのcount' 'ので、スローされません吊り上げられる。実際の式は 'NaN'の' undefined + 1'と評価されます – haim770

+0

Ah right ...エラーを起こしたリターンを使ってテストしました。 – evolutionxbox

答えて

0

と、関数を呼び出すたびに1にそれを再初期化している(したがって、それは意志あなたの10の制限に達することはありません)。

代わりにこれを試してみてください:

var count = 0; 

function updateBattleLog(x) { 
    count++; 

    // ... 
} 

Fiddle

+0

うわー、ありがとう - それは動作します!私はそれを逃したことについて、今はかなりばかげていると感じます。 –

関連する問題