前提・実現したいこと
初心者です。
16マスのルーレットを作成したのですが、リセットボタンの実装がうまくできず困っています。
1つ目はリセットボタンを押すと今までのルーレット結果を初期化し再度0から実装できる様にする
下記のコードの書き方が悪いせいか16回実装させてしまうと動かなくなる。
申し訳ございませんが知識のある方ご回答よろしくお願いします
Javascript
1$("#start").prop("disabled", hairetu <= 0);
該当のソースコード
<!DOCTYP html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>JSルーレット</title> <script src="jquery-3.5.1.min.js"></script> <script> $(function() { $("#start").click(roulette_start); $("#stop").click(roulette_stop); $("#reset").click(roulette_reset); var hairetu = new Array(); for (i =0; i < 4; i++) { var tr = $("<tr>"); for(j =0; j < 4; j++ ) { var num = i *4 + j + 1; tr.append($("<td>").text(num)) hairetu.push(num-1); } $("table").append(tr) } let interval_id; let lottery_kekka; function roulette_start() { interval_id = setInterval(lottery, 10); $("#start").prop("disabled",true); $("#stop, #reset").prop("disabled",false); $("td.tomatta_now").removeClass("tomatta_now").addClass("tomatta_ato") } function lottery() { lottery_kekka = Math.floor( Math.random() * hairetu.length); $("td").removeClass("tomatta") $("td").eq(hairetu[lottery_kekka]).addClass("tomatta") } function roulette_stop() { clearInterval(interval_id); $("td.tomatta").removeClass("tomatta").addClass("tomatta_now") hairetu.splice(lottery_kekka,1); $("#stop").prop("disabled", true); $("reset").prop("disabled", false); $("#start").prop("disabled", hairetu <= 0); } function roulette_reset() { clearInterval(interval_id); $("td").removeClass("tomatta_now").removeClass("tomatta_ato") $("#start").prop("disabled",false); $("#stop").prop("disabled",true); } }); </script> <style> td { text-align: center; border: solid 1px #000000; } table { margin: auto; font-size: 50px; border: solid 5px #000000; border-collapse: collapse; } .button3tu { text-align: center; margin-top: 20px; } .tomatta { background-color: #fff000; /*黄色*/ } .tomatta_now { background-color: #0000ff; /*青*/ } .tomatta_ato { background-color: #FFFFCC; /*薄い黄色*/ } </style> </head> <body> <table> </table> <div class="button3tu"> <button id="start">スタート</button> <button id="stop">ストップ</button> <button id="reset">リセット</button> </div> </body> </html>
試したこと
Javascript
1function roulette_reset() {
上記の関数にsetIntervalを追加
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/08 13:09
2020/08/08 14:57
2020/08/08 15:30