人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascript で選択問題のクイズを作成しています。
ボタンをおした時の処理で教えてください。

function button_clickHandler(e) {
var ch = e.target.innerHTML; // 押されたボタンの文字をCHに入れる
var tmp = ch; //押されたボタンの文字を表示

// 答えがが正しいかどうか判定する
if (tmp == kotae) {
//ここに正解の時、ボタンに色をつけたり音を出したりする処理を入れる
start(); //ここで、次の問題へ進む
}
else{
//もし、不正解のボタンを押した場合、ボタンに色をつけたり、不正解の音をだす処理を入れる
}


}

**************
↑のスクリプトだと、選択肢のボタンをおしたとき、もし答えが間違ったら、間違いの音をだした後、正解のボタンを押すまで画面が一旦停止して、正解のボタンを押したら次に進むので問題ないのですが、もし、1回目で、正解だった場合、同様に正解の音をだしたあと、即座に次の問題に進んでしまいます。
正解だった場合も、一度、画面を停止させたいのですが、どうしたらいいのでしょうか?
再度正解ボタンを押してから、次の問題へ進む(start()を実行)ようにするのはどうしたらいいのでしょうか?




●質問者: kajironpu
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pogpi

最初は非表示で、押すと次に進むボタンを表示させるといいかも知れません。
stlyeのvisibility:hiddenをvisibleにして、onclickでstartを呼ぶようにするといいでしょう。


kajironpuさんのコメント
ありがとうございます。その方法も考えたのですが、できれば、選択肢(6個あります) のボタンをそのまま使ったほうがすっきりするかと思いました。 正解しても、間違っても、一旦画面が停止して、正解のボタンを押すと、次に進むいい方法はないでしょうか?

pogpiさんのコメント
一回で正解しなかった時(何回か間違えて、正解した時)に、すぐに次に進むのはいいんですね。 間違えた時に、正解がどれか分かるように表示はするのでしょうか。 そうでないとすると、すぐに次に進んではいけないのではないかと思います。

kajironpuさんのコメント
いろいろありがとうございます。 結局、選択肢のボタンを押した時に、ボタンを押した回数をカウントさせておいて、 正解のボタンを押した回数が1より大きいときだけ、次の問題に進むというIF 文を入れたら その条件がそろうまで、うまく選択肢のところで停止してくれました。 ありがとうございました。

2 ● a-kuma3
ベストアンサー

「もう一度正解のボタンを押さないと、次に進まない」という仕様の是非は置いておいて、質問に書かれていることをやりたければ、回答おボタンが押されたことをどこかに覚えておく必要があります。
例えば、変数に覚えておくとしたら、こんな感じ。

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;
}

kajironpuさんのコメント
ありがとうございます。フラグを立てる方法があったんですね。 なるほど、おかげさまでうまくできそうです。 ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ