質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

570閲覧

Javascript ルーレット

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/04/13 07:47

前提・実現したいこと

初期状態でストップボタンを押してから、スタートとストップボタンを交互に押していくと、16マス目に色がつく前にスタートボタンが押せなくなってしまいます。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <title>ルーレット</title> <link rel="stylesheet" href="roulette.css" /> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script> var interval_id; var n; var i = 1; var go = 4; var nums = []; var ran_num; var idx;
$(function() { $('.start').click(pre_start); $('.stop').click(stop_r); $('.reset').click(reset_r); for (n = 1; n <= go; n++) { $('#matrix').append("<tr id='target'>"); $('#target').attr('id', 'tr' + n); var j = n * go; while (i <= j) { $('#' + 'tr' + n).append("<td id='target_td' class='case1'>" + i + '</td>'); $('#target_td').attr('id', 'td' + i); i++; } } $('tr').each(function() { $('td', this).each(function() { nums.push($(this).text()); }); }); }); function pre_start() { $('.start').prop('disabled', true); $('.stop').prop('disabled', false); clearInterval(interval_id); interval_id = setInterval(start_r, 50); $('#' + 'td' + ran_num).addClass('case4'); } function start_r() { $('#' + 'td' + ran_num).removeClass('case2'); $('#' + 'td' + ran_num).addClass('case1'); ran_num = nums[Math.floor(Math.random() * nums.length)]; $('#' + 'td' + ran_num).addClass('case2'); } function stop_r() { clearInterval(interval_id); $('.stop').prop('disabled', true); $('.start').prop('disabled', false); $('#' + 'td' + ran_num).addClass('case3'); idx = $.inArray(ran_num, nums); nums.splice(idx, 1); if (nums.length < 1) { $('.start').prop('disabled', true); } } function reset_r() { clearInterval(interval_id); $('.start').prop('disabled', false); nums = []; ran_num = 0; $('td').removeClass('case1 case2 case3 case4'); $('td').addClass('case1'); $('tr').each(function() { $('td', this).each(function() { nums.push($(this).text()); }); }); } </script>
</head> <body> <div id="roulette"> <table id="matrix"></table> <div class="button"> <button class="start">スタート</button> <button class="stop">ストップ</button> <button class="reset">リセット</button> </div> </div> </body> </html>
ソースコード

body {
width: 500px
}

.button {
text-align: center;
margin-top: 20px;
}

.start, .stop, .reset {
display: inline-block;
padding: 1px 1.5px;
text-decoration: none;
}

.start:active {
transform: translateY(4px);
}

.start {
color: black;
}

.stop {
color: black;
}

.stop:active {
transform: translateY(4px);
}

.reset {
color: black;
}

.reset:active {
transform: translateY(4px);
}

table {
margin: 0 auto;
}

table {
border: solid 5px black;
border-collapse: collapse;
border-spacing: 0;
font-size: 20px;
}

tr, td {
border: solid 2px black;
}

td {
width: 50px;
height: 50px;
text-align: center;
line-height: 50px;
}

.case1 {
background-color: white;
}

.case2 {
background-color: blue;
}

.case3 {
background-color: red;
}

.case4 {
background-color: gray;
color: black;
}

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2021/04/13 09:13 編集

ソースコードはコードブロックで囲んで提示してください。 ```html ここにHTMLを書く ``` ```css ここにCSSを書く ``` あるいはcodepenなどのサービスを利用して動くサンプルを作ると良いと思います。
meg_

2021/04/13 11:04

コードは「コードの挿入」で記入してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問