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

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

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

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

Q&A

1回答

1290閲覧

.load() でテンプレート使用した際のスクリプト呼び出しについて

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2015/08/05 16:51

トップページのヘッダー、フッター、スマホのグローバルナビ部分のそれぞれ囲った要素を.load() を使用し、テンプレート化して他のサブページに使用しています。
ただ、.load()でサブページに呼び出されたテンプレートのscriptが全く反応しません。
色々調べていると『セレクタ指定入りのURLによって.load()を呼び出した場合、要素が更新される前にスクリプトは取り除かれてしまい実行されることはありません。』という記事を発見しました。
確かにセレクタ指定入りのURLなのでそれでスクリプトが取り除かれてると思うのですが、このテンプレートは是非使用したいです。
どなたか解決策ご存知でしたらお教えください。

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

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

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

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

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

guest

回答1

0

つまり、次のようなテンプレートがあって

html

1<div id="aaa"> 2 <span>これは AAA です</span> 3</div> 4<div id="bbb"> 5 <span>これは BBB です</span> 6</div> 7<script> 8alert("this is template."); 9</script> 10

次のように読み込んだときに script タグの中身を実行させたい、ということでしょうか?

javascript

1$('#content').load('template.html #aaa');

.load だと難しそうなので、.get で取得した後に、非表示の要素として一瞬だけ追加して即削除する、とかでどうでしょうか?

javascript

1$.get('template.html').then(function(data){ 2 $('#content').empty().append($(data).filter('#aaa')); 3 $('<div>').hide().append(data).appendTo('body').remove(); 4});

投稿2015/08/06 00:15

ngyuki

総合スコア4514

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

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

退会済みユーザー

退会済みユーザー

2015/08/18 04:33

回答ありがとうございます。 ngyuki様の解釈されてる通り、 上記の読み込みのときにscriptを実行させたい感じです! ご提案いただいた記述で試そうとしたところ 『 $('<div>').hide().append(data).appendTo('body').remove();』部分で記述エラーが出てしまうようです。。 何かお分かりになるようでしたらご教示いただけると幸いです。
ngyuki

2015/08/18 10:14

記述エラーとはシンタックスエラーのことでしょうか? エラーの内容をもう少し詳細に教えてくれないとわからないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問