0

数字が入力されたグリッドがある単純な計算ゲームを作成しています。数字は非表示で、ゲームを実行するとグリッド スペースが強調表示されます。横の div は、ユーザーが正しい答えを得るのに役立つ合計を生成します。次に、ユーザーは対応する数字をクリックして位置を決め、正しいか間違っているかを知らせます。

私は次のボタン (「.minibutton」) を持っているので、ユーザーが答えを 3 回間違えた場合、次の質問に移動する機会があります。ボタンには .trigger('click') 関数もあり、単語が正しく完成すると自動的に移動し、ゲームの流れを維持します。

私の問題は、ボタンが機能しなくなったことです。その理由はわかりません。これが「.minibutton」関数です...

$('.minibutton').click(function() {
var sum = $('#answerlist li[data-answer="' + answer + '"]').data('sum');
$(right).val('');
$(wrong).val('');
$('td').removeClass('spellanswer');
score.wrong = 0;
var r = rndanswer;
while (r == rndanswer) {
    rndanswer = Math.floor(Math.random() * (listOfanswers.length));
}

このステートメントを追加すると、ボタンが機能しなくなりました

 //for (var x = 0; x < listOfanswers.length; x++) {
    //if (eval(sum.replace("=", "").replace("x", "*")) == listOfanswers[x].name) {
       // rndanswer = x;
   // }
//}

$('td[data-answer="' + listOfanswers[rndanswer].name + '"]').addClass('spellanswer');
$('td[data-answer=' + answer + ']').removeClass('answerglow').removeClass('answerglow4').removeClass('answerglow3').css('color', 'transparent');

var noExist = $('td[data-answer=' + listOfanswers[rndanswer].name + ']').hasClass('answerglow2');
if (noExist) {
    $('.minibutton').prop('disabled', false);

} else {

    $('.sumstyle').text(sum);
    sum.hide();

}
}).trigger("click");

http://jsfiddle.net/ZAfVZ/28/

4

1 に答える 1

1

jsFiddle を実行すると、次のエラーが発生します。

Object 1 + 2 = has no method 'hide'

文字列を隠そうとしていますが、これは明らかに間違っています。その時点以降、スクリプトの実行が停止します。を削除/コメントアウトするsum.hide()と、3 回間違えると「次へ」ボタンが表示されます。

JSFiddle を編集して、関数の先頭にsum(プレーヤーが答えようとしている合計を含むテキスト文字列) とseumElem(合計を含む HTML 要素) を定義しました: http://jsfiddle.net/ZAfVZ/30 /

于 2012-10-18T09:21:33.297 に答える