0

ユーザーが文字をクリックして単語を綴るスペルゲームを作成しました。ユーザーに間違っていることと正しいことの数を示すために、正しいメッセージと間違ったメッセージが表示された回数を数え、それをユーザーに出力します。

これは正しい答えに対しては完全に機能しますが、間違った答えに対しては機能しません。誰かが理由を教えてもらえますか?

これは正解のスクリプトです(正常に動作します)...

var completeLetters = $('.wordglow2').length;
var completeWords = (completeLetters / 3);

    if ($(right).show()) {
        $('.counter').html("Right Answers = " + completeWords).show();
    }

これは間違った答えのためのものです(まったく同じロジックですが、うまくいきません!)...

var incompleteLetters = $('.wordglow4').length;
var incompleteWords = (incompleteLetters / 3);

    if ($(wrong).show()) {
        $('.counter2').html("Wrong Answers = " + incompleteWords).show();
    }

したがって、基本的に「wordglow4」はスペルが間違っている場合に文字に追加されるスタイルであり、「wordglow2」は正しいスペルの文字に追加されるスタイルです。

すべての単語は 3 文字で、"(incompleteLetters / 3)" です。

これはhttp://jsfiddle.net/smilburn/Dxxmh/34/を助けるフィドルです

4

2 に答える 2

2

「完全な単語」カウンターは、単語が完成したときにテーブルセルに「.wordglow2」スタイルを常に残すため、機能します。したがって、 $('.wordglow2').lengthは常に完成した文字 (つまり単語) の合計を返します。

ただし、ユーザーが正しく理解するとすぐにスタイルが変更されるため ('.wordglow4' から '.wordglow2' に変更されるため)、間違った単語は機能しません。よりわかりやすいクラス名を使用することを検討してください。 '.correctLetter' および '.wrongLetter')。したがって、画面上に「.wordglow4」文字が 3 つ以上表示されることはないため、incompleteWordsカウンターが 1 を超えることはありません。

間違った単語カウンターを機能させるには、関数の外側でカウンターを宣言し、次のようにする必要があります。

var incompleteLetters = $('.wordglow4').length;
incompleteWords += (incompleteLetters / 3);

これにより、以前の失敗が追跡され、必要な動作が得られます。

于 2012-10-09T09:58:11.787 に答える
1

正しく推測された後にクラスを維持する正解は異なり、クラスのテーブルセルによってボードに示される間違った答えは1つだけです。.wordglow4.wordglow2

したがって、のカウント.wordglow2は常に正しいのに対し、のカウントは.wordglow43つだけになります。

count変数をイベントの外に移動し.click()、単語が誤って推測された場合はインクリメントする必要があります。

したがって、サンプルコードに、...を追加します。

var animation = false;
var incompleteWords = 0; // <-- this line
$('.drag').on('click', function(e) {

と変更

var incompleteWords = (incompleteLetters / 3);

incompleteWords += (incompleteLetters / 3);
于 2012-10-09T11:39:51.990 に答える