ボタンをおした時の処理で教えてください。
function button_clickHandler(e) {
var ch = e.target.innerHTML; // 押されたボタンの文字をCHに入れる
var tmp = ch; //押されたボタンの文字を表示
// 答えがが正しいかどうか判定する
if (tmp == kotae) {
//ここに正解の時、ボタンに色をつけたり音を出したりする処理を入れる
start(); //ここで、次の問題へ進む
}
else{
//もし、不正解のボタンを押した場合、ボタンに色をつけたり、不正解の音をだす処理を入れる
}
}
**************
↑のスクリプトだと、選択肢のボタンをおしたとき、もし答えが間違ったら、間違いの音をだした後、正解のボタンを押すまで画面が一旦停止して、正解のボタンを押したら次に進むので問題ないのですが、もし、1回目で、正解だった場合、同様に正解の音をだしたあと、即座に次の問題に進んでしまいます。
正解だった場合も、一度、画面を停止させたいのですが、どうしたらいいのでしょうか?
再度正解ボタンを押してから、次の問題へ進む(start()を実行)ようにするのはどうしたらいいのでしょうか?
「もう一度正解のボタンを押さないと、次に進まない」という仕様の是非は置いておいて、質問に書かれていることをやりたければ、回答おボタンが押されたことをどこかに覚えておく必要があります。
例えば、変数に覚えておくとしたら、こんな感じ。
var already_clicked = false; // ★ボタンが押されたことを覚えておく変数 function button_clickHandler(e) { var ch = e.target.innerHTML; // 押されたボタンの文字をCHに入れる var tmp = ch; //押されたボタンの文字を表示 // 答えがが正しいかどうか判定する if (tmp == kotae) { //ここに正解の時、ボタンに色をつけたり音を出したりする処理を入れる // ★一度、ボタンが押されていたら、次の問題へ進む if (already_clicked) { start(); //ここで、次の問題へ進む } } else{ //もし、不正解のボタンを押した場合、ボタンに色をつけたり、不正解の音をだす処理を入れる } // ★ボタンが押されたことを覚えておく already_clicked = true; }
最初は非表示で、押すと次に進むボタンを表示させるといいかも知れません。
stlyeのvisibility:hiddenをvisibleにして、onclickでstartを呼ぶようにするといいでしょう。
一回で正解しなかった時(何回か間違えて、正解した時)に、すぐに次に進むのはいいんですね。
間違えた時に、正解がどれか分かるように表示はするのでしょうか。
そうでないとすると、すぐに次に進んではいけないのではないかと思います。
いろいろありがとうございます。
結局、選択肢のボタンを押した時に、ボタンを押した回数をカウントさせておいて、
正解のボタンを押した回数が1より大きいときだけ、次の問題に進むというIF 文を入れたら
その条件がそろうまで、うまく選択肢のところで停止してくれました。
ありがとうございました。
「もう一度正解のボタンを押さないと、次に進まない」という仕様の是非は置いておいて、質問に書かれていることをやりたければ、回答おボタンが押されたことをどこかに覚えておく必要があります。
例えば、変数に覚えておくとしたら、こんな感じ。
var already_clicked = false; // ★ボタンが押されたことを覚えておく変数 function button_clickHandler(e) { var ch = e.target.innerHTML; // 押されたボタンの文字をCHに入れる var tmp = ch; //押されたボタンの文字を表示 // 答えがが正しいかどうか判定する if (tmp == kotae) { //ここに正解の時、ボタンに色をつけたり音を出したりする処理を入れる // ★一度、ボタンが押されていたら、次の問題へ進む if (already_clicked) { start(); //ここで、次の問題へ進む } } else{ //もし、不正解のボタンを押した場合、ボタンに色をつけたり、不正解の音をだす処理を入れる } // ★ボタンが押されたことを覚えておく already_clicked = true; }
ありがとうございます。フラグを立てる方法があったんですね。
なるほど、おかげさまでうまくできそうです。
ありがとうございました。
ありがとうございます。フラグを立てる方法があったんですね。
2015/09/29 14:20:26なるほど、おかげさまでうまくできそうです。
ありがとうございました。