-2

Javascript と jQuery を使い始めたばかりで、最初のプロジェクトで少し問題が発生しました。初めて完全に機能するシンプルなブラックジャックゲームを構築しています。

最初のハンドが終了すると、ボタン #playAgain がクリックされると、再帰的な playGame() 関数を呼び出すことによって、ゲームがリセットされ、再びプレイされることになっています。これは正常に動作しますが、playAgain が実行された後、hitMe 関数がユーザーに対して壊れます。これは体系的なコードであるため、ユーザーと PC の両方が同じアクションを実行していますが、ユーザーにとっては異なる動作をしており、プレイしたゲームの数に基づいて指数関数的に hitMe 関数を呼び出し始めます。

この場合、呼び出しを提供するユーザー/コンピューターに基づいて、このコードの動作が異なるのはなぜですか?どうすれば修正できますか?

コードは www.calebdwilliams.com/blackjack にあります。

4

2 に答える 2

2

playGameメソッド内でイベント ハンドラーをバインドします。

つまり、実行するたびに、必要な要素に追加のハンドラーがバインドされます。

したがって、そのメソッドでバインドする前にバインドを解除する必要があります..

あなたがするときはいつでも.click(...)最初unbind('click')に..

$("#stand").unbind('click').click(function(){

$("#hit").unbind('click').click(function(){

$("#playAgain").unbind('click').click(function(){
于 2012-12-26T21:21:38.903 に答える