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

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

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

HighchartはHTML、SVG、VMLを使ったJavascriptの描写用ライブラリです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

3828閲覧

リロードをせずに、jQueryを使ったタブの切り替えをしたい

ShouheyHayashi

総合スコア8

Highcharts

HighchartはHTML、SVG、VMLを使ったJavascriptの描写用ライブラリです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/05/21 14:48

###前提・実現したいこと
railsを使用して、あるWebサービスを作っていて、webページのログイン画面で、jQueryを使ってタブの切り替え機能を作リました。しかし、いざ実行をしてみると、ページに移動し、タブをクリックしても反応をせず、一度サイトのリロードをすると、タブが切り替わる、というような状況です。なぜ一度リロードしなければ、タブが正常に動作をしないのかがわからず、質問させていただいております。

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

Chrome上でインスペクトした時に出てきました。 highstock.js?body=1:9 Uncaught Error: Highcharts error #16: www.highcharts.com/errors/16

###application.js

javascript

1 2// This is a manifest file that'll be compiled into application.js, which will include all the files 3// listed below. 4// 5// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 6// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. 7// 8// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 9// compiled file. 10// 11// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details 12// about supported directives. 13// 14//= require jquery 15//= require jquery_ujs 16//= require turbolinks 17//= require_tree . 18//= require highcharts/highcharts 19//= require highcharts/highcharts-more 20//= require highcharts/highstock 21 22 23$(function(){ 24 $('#tab-menu li').on('click', function(){ 25 if($(this).not('selected')){ 26 // タブメニュー 27 $(this).addClass('selected').siblings('li').removeClass('selected'); 28 // タブの中身 29 var index = $('#tab-menu li').index(this); 30 $('#tab-box div').eq(index).addClass('selected').siblings('div').removeClass('selected'); 31 } 32 }); 33}); 34

###new.html.erb

ruby

1 2... 3 <div id="tab-menu" class="tab-menu label"> 4 <ul> 5 <li class="selected"><p>大学生</p></li> 6 <li><p>社会人</p></li> 7 <li><p>その他</p></li> 8 </ul> 9 10 <div id ="tab-box" class="label"> 11 <div class="selected"> 12 <%= f.label :文理選択 %><br /> 13 <%= f.select :culture_or_science, ['文系', '理系'] %> 14 15 <br /><%= f.label :大学%> 16 <%= f.text_field :university, :placeholder =>'大学名を入力してください'%> 17 18 <%= f.label :学部%><br /> 19 <%= f.text_field :department, :placeholder => '学部の種類を選択してください'%> 20 21 <%= f.label :卒業年%><br /> 22 <%= f.text_field :graduation_year, :placeholder => '卒業される年度を記入してください'%> 23 </div> 24 25 26 <div> 27 <%= f.label :会社名 %><br /> 28 <%= f.text_field :company, :placeholder => '会社名を記入してください'%> 29 </div> 30 31 32 <div> 33 <%= f.label :その他の所属 %><br /> 34 <%= f.text_field :other, :placeholder => '所属名を記入してください'%> 35 </div> 36 </div>

###application.css

css

1 2 3.tab-menu ul { 4 width:100%; 5 margin: 0; 6 padding: 0; 7} 8 9.tab-menu li { 10 display: inline-block; 11 width: 32%; 12 height: 22px; 13 cursor: pointer; 14 background-color: #81D0FE; 15 font-size: 14px; 16 color: #fff; 17 border-top-right-radius:5px; 18 border-top-left-radius:5px; 19 text-align: center; 20} 21 22.tab-menu li.selected { 23 background-color: #fff; 24 color: #81D0FE; 25} 26 27.contents { 28 height: 360px; 29 padding: 20px; 30} 31 32#tab-box div{ 33 display: none; 34} 35#tab-box div.selected { 36 display: block; 37 -webkit-animation: anime1 2s ease; 38}

###試したこと
(javascriptはほぼ初めて触るので)Highcharts error #16: というエラーが意味することをあまり理解することができませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
-railsの"devise"gemを使用してログイン画面を作っております。
-application.js上に"//= require highcharts/highcharts
//= require highcharts/highcharts-more
//= require highcharts/highstock
"記述しています。
足りない情報がございましたら、追記いたします。ご回答心よりお待ちしております。
by駆け出しのrubyプログラマー

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

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

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

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

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

guest

回答1

0

ベストアンサー

turbolinks5によるものです。
JSをそのままコピペではなく
確かこういうふうに置き換えると治ったと思います。

javascript

1document.addEventListener("turbolinks:load", function() { 2 $('#tab-menu li').on('click', function(){ 3 if($(this).not('selected')){ 4 // タブメニュー 5 $(this).addClass('selected').siblings('li').removeClass('selected'); 6 // タブの中身 7 var index = $('#tab-menu li').index(this); 8 $('#tab-box div').eq(index).addClass('selected').siblings('div').removeClass('selected'); 9 } 10 }); 11})

参考サイト

投稿2017/05/21 15:33

moke

総合スコア2241

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

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

ShouheyHayashi

2017/06/03 02:05

無事解決しました。本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問