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

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

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

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

JavaScript

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

iPhone 6

iPhone 6は、2014年に発売されたアップル社のスマートフォンです。画面サイズは4.7インチあり、A8コアチップとM8モーションコプロセッサを搭載しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

16791閲覧

iPhoneのSafariでJavaScriptが動かない

Mudkip

総合スコア13

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

JavaScript

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

iPhone 6

iPhone 6は、2014年に発売されたアップル社のスマートフォンです。画面サイズは4.7インチあり、A8コアチップとM8モーションコプロセッサを搭載しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/10/11 01:49

編集2016/10/11 03:38

###前提・実現したいこと
iPhone 6 Plus(バージョン9.3.2)のSafariでJavaScript(タブ切替、インクルード)を動かしたい。

###発生しているエラー
0. タブ切替が動かない
0. インクルードファイルが読み込まれない
###試したこと

  • PC(Chrome)のデベロッパーツールで確認した際は、正常に動作している。
  • Android(バージョン4.4.2)のChromeでも正常に動作。
  • iPad(バージョン10)のSafariでも正常に動作。
  • CSSにcursor:pointer;を追加してみたが、動作せず。

###該当のソースコード

JavaScript

1 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 2 <script type="text/javascript"> 3 $(function(){ 4 5 $("#textArea>div").hide(); 6 7 var select_id = 1; 8 $("#btn_" + select_id).addClass("selected"); 9 $("#txt_" + select_id).show(); 10 11 $('#tab').on("click touchstart", "li:not(.selected)",function() { 12 //---クリックされたIDの取得 13 var click_id = this.id.split("_")[1]; 14 15 //---選択されていたIDの処理 16 $("#btn_" + select_id).removeClass("selected"); 17 $("#txt_" + select_id).hide(); 18 19 //---クリックされたIDの処理 20 $("#btn_" + click_id).addClass("selected"); 21 $("#txt_" + click_id).show(); 22 23 //---IDの記憶 24 select_id = click_id; 25 }) 26 27 28 }) 29 </script> 30

HTML

1<section id="tab"> 2 <ul class="tabs"> 3 <li id="btn_1">A</li> 4 <li id="btn_2">B</li> 5 </ul> 6 7<div id="textArea"> 8 <div id="txt_1"> 9 Aの内容 10 <!-- includefile --> 11 <div class="exsample"></div> 12 <script type="text/javascript"> 13 $(document).ready(function() { 14 $('.exsample').load('exsample.html'); 15 }); 16 </script> 17 <!-- includefile --> 18 </div><!-- //END txt_1 --> 19 20 <div id="txt_2"> 21 Bの内容 22 </div><!-- //END txt_2 --> 23</div><!-- //END textArea --> 24</section><!-- //END tab --> 25

css

1#tab ul li { 2 display: inline-block; 3 width: 45%; 4 margin: 0px 0px 0px 5px; 5 padding: 20px 0; 6 color: #999; 7 font-size: 1.5em; 8 background-color:#ddd; 9} 10#tab ul li.selected { 11 color: #000; 12 background-color:#fff; 13 border: 1px solid; 14 border-color: #000 #000 #fff #000; 15}

他必要な情報等ありましたらご指摘願います。
何卒ご教授賜りますようよろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

自己解決

あれから色々と原因を探っていたところ、どうやらAの内容で呼び出しているインクルードファイル(exsample.html)が邪魔をしていたようです。
中身はテキストのみだったので何が邪魔をしていたのか不明ですが、同じ内容でファイルを作り直したところ正常に動作しましたので、とりあえずは解決ということにさせていただきます。

アドバイスをくださったお二方、ありがとうございました。

投稿2016/10/12 01:49

Mudkip

総合スコア13

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

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

0

このように変更してみてはいかがでしょうか?
一応私の環境では動作いたしました。

javascript

1$(function(){ 2 3 $("#textArea>div").hide(); 4 5 var select_id = 1; 6 $("#btn_" + select_id).addClass("selected"); 7 $("#txt_" + select_id).show(); 8 9 $('.tabs li').on("click", function() { 10 11 //---クリックされたIDの取得 12 var click_id = $(this).attr('id').split("_")[1]; 13 14 //---選択されていたIDの処理 15 $("#btn_" + select_id).removeClass("selected"); 16 $("#txt_" + select_id).hide(); 17 18 //---クリックされたIDの処理 19 $("#btn_" + click_id).addClass("selected"); 20 $("#txt_" + click_id).show(); 21 22 //---IDの記憶 23 select_id = click_id; 24 }); 25});

投稿2016/10/11 04:26

masayoshi0222

総合スコア162

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

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

Mudkip

2016/10/11 05:25

masayoshi0222さん アドバイスありがとうございます。 試してみましたが、タブ切替もインクルードも動作せずでした。 iPhone自体の再起動もかけてみましたが、変わらず・・・。 ただ、iPadでは動作しているとなるとバージョンが要因なのでしょうか?
guest

0

clickのところ、touchで試したらどうなりますかね。

javascript

1$('#tab').on("touch touchstart", "li:not(.selected)",function() {

投稿2016/10/11 02:15

fromageblanc

総合スコア2724

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

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

Mudkip

2016/10/11 02:30

fromageblancさん アドバイスありがとうございます。 試してみましたが、残念ながら動作せずでした・・・。
fromageblanc

2016/10/11 02:38

あとは、CSSで cursor: pointer を指定すると発火するみたいな記事がネットにけっこうありますね。試してみてはいかがでしょうか。
Mudkip

2016/10/11 02:52

fromageblancさん cursor: pointer も試してみましたが、動作せずでした。しかし、これに関する記事がいくつか出てきましたので色々試してみます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問