前提・実現したいこと
〇前提
プログラミングを勉強し始めて、間もない初学者です。
添付画像の中で、javascriptを用いてタブ切り替え機能を実装しようとしています。
〇実現したいこと
「手続きフローチャート」を押した際に、タブが使えるようになってほしい。
発生している問題・エラーメッセージ
〇現状
「手続きフローチャート」を押す→タブが発火しない。
「手続きフローチャート」→ページを更新→タブが発火
該当のソースコード
html
1<div class="header"> 2 <div class="botton"> 3 <%= link_to "トップページ", root_path %> 4 </div> 5 6 <div class="botton"> 7 <%= link_to "みんなのオススメ記事", articles_path %> 8 </div> 9 10 <div class="botton"> 11 <%= link_to "手続きフローチャート", flowcharts_path %> 12 </div> 13 14 <div class="botton"> 15 <%= link_to "新規登録", new_user_registration_path %> 16 </div> 17 18 <div class="botton"> 19 <%= link_to "ログイン", new_user_session_path %> 20 </div> 21 22 <div class="botton"> 23 <%= link_to "管理者ログイン", new_admin_session_path %> 24 </div> 25</div>
html
1<script src="javascripts/flowchart.js"></script> 2フローチャート index<br> 3<% if admin_signed_in? %> 4 <%= link_to "フローチャート追加", new_flowchart_path %> 5<% end %> 6 7<div class="tab-area"> 8 <div class="tab active"> 9 タブ1 10 </div> 11 <div class="tab"> 12 タブ2 13 </div> 14 <div class="tab"> 15 タブ3 16 </div> 17 <div class="tab"> 18 タブ4 19 </div> 20 <div class="tab"> 21 タブ5 22 </div> 23</div> 24<div class="content-area"> 25 <div class="content show"> 26 フローチャートのタイトル1 27 </div> 28 <div class="content"> 29 フローチャートのタイトル2 30 </div> 31 <div class="content"> 32 フローチャートのタイトル3 33 </div> 34 <div class="content"> 35 フローチャートのタイトル4 36 </div> 37 <div class="content"> 38 フローチャートのタイトル5 39 </div> 40</div> 41 42東京都の各自治体ホームページ 43<div class="tab-area"> 44 <div class="tab active"> 45 飲食業 46 </div> 47 <div class="tab"> 48 風営法 49 </div> 50 <div class="tab"> 51 建設業法 52 </div> 53 <div class="tab"> 54 入管法 55 </div> 56 <div class="tab"> 57 その他 58 </div> 59</div> 60<div class="content-area"> 61 <div class="content show"> 62 <table border="1"> 63 <tbody> 64 <tr> 65 <td><a href= https://www.city.suginami.tokyo.jp>杉並区</a></td> 66 <td><a href= https://www.city.tokyo-nakano.lg.jp/>中野区</a></td> 67 </tr> 68 </tbody> 69 </table> 70 </div> 71 <div class="content"> 72 <div class="content show"> 73 <table border="1"> 74 <tbody> 75 <tr> 76 <td><a href= https://www.keishicho.metro.tokyo.jp/tetsuzuki/fuzoku/index.html>警視庁</a></td> 77 </tr> 78 </tbody> 79 </table> 80 </div> 81 <div class="content"> 82 フローチャートのタイトル3 83 </div> 84 <div class="content"> 85 フローチャートのタイトル4 86 </div> 87 <div class="content"> 88 フローチャートのタイトル5 89 </div> 90</div>
CSS
1.tab-area { 2 display: flex; 3 justify-content: space-around; 4 background-color: #222e3e; 5 cursor: pointer; 6 .tab { 7 width: 303px; 8 height: 30px; 9 line-height: 30px; 10 text-align: center; 11 color: white; 12 border-right: 1px solid #50637b; 13 border-left: 1px solid #222e3e; 14 } 15 .tab.active { 16 background-color: #ccc; 17 color: #222e3e; 18 border: none; 19 } 20} 21.content-area { 22 font-size: 30px; 23 text-align: center; 24 .content { 25 display: none; 26 } 27 .content.show { 28 margin-top: 50px; 29 display: block; 30 } 31}
JS
1/*global $*/ 2$(function() { 3 let tabs = $(".tab"); 4 $(".tab").on("click", function() { 5 $(".active").removeClass("active"); 6 $(this).addClass("active"); 7 const index = tabs.index(this); 8 $(".content").removeClass("show").eq(index).addClass("show"); 9 }) 10})
試したこと
解決策がわからず、何を試したらよいか不明です。
補足情報(FW/ツールのバージョンなど)
不明点がありましたら、補足いたします。
補足
ruby
1Rails.application.routes.draw do 2 devise_for :admins, controllers: { 3 sessions: 'admins/sessions' 4 } 5 devise_for :users 6 root to: 'homes#top' 7 get '/search' => 'searches#search' 8 resources :articles do 9 resources :comments, only:[:create, :destroy] 10 resource :favorites, only:[:create, :destroy] 11 end 12 resources :flowcharts, only: [:new, :create, :show, :index, :destroy] 13end
ruby
1class FlowchartsController < ApplicationController 2 def new 3 @flowchart = Flowchart.new 4 end 5 6 def create 7 @flowchart = Flowchart.new(flowchart_params) 8 @flowchart.save 9 redirect_to flowcharts_path 10 end 11 12 def index 13 end 14 15 def show 16 @flowchart = Flowchart.find(params[:id]) 17 end 18 19 def destroy 20 end 21 22 private 23 def flowchart_params 24 params.require(:flowchart).permit(:title, :introduction, :place) 25 end 26end
回答2件
あなたの回答
tips
プレビュー