重力四目並べのプログラムをJSで作成しています。
選択したマスの1段上のクリックを可能にする処理を作成したのですが、
classの書き換えはできているけどクリックが動作しないのでどこを修正したら良いか教えてください。
chair.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="styles.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> </head> <body> <table> <thead> <tr> </tr> </thead> <tbody> <tr> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> </tr> <tr> <td class="disable"></td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> </tr> <tr> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> </tr> <tr> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> </tr> <tr> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> <td class="disable"> </td> </tr> <tr> <td class="able"> </td> <td class="able"> </td> <td class="able"> </td> <td class="able"> </td> <td class="able"> </td> <td class="able"> </td> </tr> </tbody> </table> <script src="chair.js"></script> </body> </html>
chair.js
'use strict'; { var nowPlayer = true; // クリック可能なマスか判定 jQuery(function(){ jQuery('.able').click(function(){ if(jQuery(this).hasClass('firstStrike') || jQuery(this).hasClass('secondAttack')){ return false; }else{ AddClass(this); } }); }); // クリックしたマスの1段上を選択可能にする function changeCLass(getClass){ var changeNUm = jQuery('td').index(getClass)-6; jQuery('td').eq(changeNUm).removeClass('disable').addClass('able'); } // クリックしたマスの色変更 function AddClass(getClick){ NowPlay(nowPlayer); if(nowPlayer == true){ jQuery(getClick).addClass('firstStrike'); changeCLass(getClick); nowPlayer = false; return nowPlayer; }else{ jQuery(getClick).addClass('secondAttack'); changeCLass(getClick); nowPlayer = true; return nowPlayer; } } // 出番のプレイヤーを設定 function NowPlay(nowPlayer){ jQuery.cookie('nowPlayer',nowPlayer); } }
styles.css
table,thead,tbody{ border: 1px solid #ddd; } table{ margin: 0 auto; } th,td{ border: 1px solid #eee; } td{ width: 50px; height: 50px; } .hidden-td{ border: 1px solid white; } .firstStrike{ background-color: red; } .secondAttack{ background-color: green; }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。