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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

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

Q&A

解決済

1回答

1988閲覧

JavaScriptレスポンシブナビについて

pac894398

総合スコア429

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

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

0グッド

0クリップ

投稿2015/01/27 15:10

http://one-text.tk/template/

現在上記ページ(テンプレート)を編集しているのですが...

右上の MENU をクリックしたらメニューが出てくるJSを調整中です。

該当のJSのコードを見ていると無駄な部分があるように思えます。

例えば以下のコードの部分です。

lang

1 init: function() 2 lib.add(window,"load",function(){ 3 lib.BodyClassName = document.body.className; 4 var tObj = document.getElementsByTagName('nav'); 5 var nav = document.createElement('nav'); 6 nav.id = 'SlideNav'; 7 nav.className = 'close'; 8 nav.onclick = function(){ 9 lib.toggle(); 10 }; 11 12 var ul = document.createElement('ul'); 13 14 var li = document.createElement('li'); 15 var elm = document.createElement('a'); 16 elm.innerHTML = "Test" ; 17 elm.href = "#test"; 18 li.appendChild(elm); 19 ul.appendChild(li); 20 21 var li = document.createElement('li'); 22 var elm = document.createElement('a'); 23 elm.innerHTML = "Yahoo!" ; 24 elm.href = "http://yahoo.co.jp/" ; 25 li.appendChild(elm); 26 ul.appendChild(li); 27 28 var li = document.createElement('li'); 29 var elm = document.createElement('a'); 30 elm.innerHTML = "Google" ; 31 elm.href = "http://google.com/"; 32 li.appendChild(elm); 33 ul.appendChild(li); 34 35 nav.appendChild(ul); 36 document.body.appendChild(nav); 37 38 var sw = document.createElement('div'); 39 sw.id = 'ResponsiveNavOverlay'; 40 sw.className = 'close'; 41 sw.onclick = function(){ 42 lib.toggle(); 43 }; 44 document.body.appendChild(sw); 45 }); 46 },

上記コードを削除して...

lang

1<nav class="close" id="SlideNav"><ul><li><a href="#test">Test</a></li><li><a href="http://yahoo.co.jp/">Yahoo!</a></li><li><a href="http://google.com/">Google</a></li></ul></nav> 2<div class="close" id="ResponsiveNavOverlay"></div>

上記HTMLを直接書き込むと同じ動作はしないのでしょうか?

ご回答よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

恐らくJavaScriptはDOM生成後に動く仕組みかな?
だとすると、HTMLで直書きするのと、JavaScriptで動的に生成するのでは、
単純に生成のタイミングが違ってきますんで、そこに注意しておけば、
直書きでもいいのかも。

投稿2015/01/27 15:16

Seiji_Ogawa

総合スコア112

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

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

pac894398

2015/01/27 15:20

今回の場合は... JavaScriptの読み込みが終わっていないににメニューがあるだけで、 機能には影響がないという認識で大丈夫でしょうか?
Seiji_Ogawa

2015/01/27 15:28

HTMLが無いのにJavaScriptが特定のHTML指定してたらエラーになるけど、 今回のHTML直書きはその逆なので、問題無いと思いますよ。 大丈夫だと思いますー。
pac894398

2015/01/27 21:40

http://one-text.tk/template2/ 直してみました。 メニューオープンは正常に動作するのですが、 クローズが動作しなくなりました。 私には原因が分からないにでアドバイスいただけないでしょうか? お手数ですがよろしくお願いします。
Seiji_Ogawa

2015/01/28 10:32

あれ? this.lib.init(); でエラーでてるんですけど、 init()がないですよ。
pac894398

2015/01/28 12:59

this.lib.init(); を削除すればいいのでしょうか?
pac894398

2015/01/28 13:00

削除してももんだが解決しませんでした... どのように直せばいいのでしょうか...? JS始めたばかりなので教えていただけると幸いです。
pac894398

2015/01/28 14:50

<div class="close" id="ResponsiveNavOverlay" onclick="lib.toggle();"></div> にしたらできました。 ありがとうございました!
Seiji_Ogawa

2015/01/29 11:48

時間が取れなくて返事できませんでした。 解決したようで何よりですー。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問