jQuery 読み込んだ外部htmlファイル内での関数の実行ができない
お世話になります。
iwatuturuturu と申します。
jQueryで読み込んだ外部htmlファイル内での関数の実行ができません。
[index.html]にてjQueryのloadを使用し、同じ階層内の[basic.html]のファイルを読み込んでいます。
slideToggleをしようしてアコーディオンをつけたいのですが、外部htmlの[basic.html]のアコーディオンみ動きません。
【ソース[index.html]】------------------------------------------------------------
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../js/jquery.js"></script>
<script>
$(function(){
//外部ファイルの読み込み
$("#basic").load("basic.html");
// アコーディオン
$('dt').click(function(){
$(this).next().slideToggle('slow');
});
});
</script>
</head>
<body>
<dl class="accordion">
<dt>アコーディオン</dt>
<dd>ここの表示非表示が切り替わる</dd>
</dl>
<div id="basic"></div>
</body>
</html>
【ソース[basic.html]】------------------------------------------------------------
<div style="border:1px solid #666666">
<p>読み込み込まれるテキスト</p>
<dl class="accordion">
<dt>ここをクリック</dt>
<dd>ここの表示非表示が切り替わる</dd>
</dl>
</div>
------------------------------------------------------------------------------------
もともと外部より読み込まれたファイル内のjavasicriptは実行されない仕様なのでしょうか?
また、他のやり方で同じ動作を実現する方法などありましたらご教授お願い致します。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
おそらく読み込みのタイミングの問題でしょう。
load メソッドは、非同期に読み込みを実行します。
loadメソッド呼び出しが終了した時点では、まだ外部htmlは読み込まれていません。
そのloadメソッド呼び出し直後に「$('dt').click(function(){…」を実行した場合、
loadによる読み込みはまだできていないため、そのhtmlに対するイベントの設定はできないことになります。
そういう場合は、liveメソッドを使えば、loadメソッドなどで動的に書き換えた要素に対してもイベントを関連づけることができます。具体的には、
> $('dt').click(function(){$(this).next().slideToggle('slow');});
の代わりに
> $('dt').live('click', function(){$(this).next().slideToggle('slow');});
とします。
また、別の方法としては、load の第3引数で読み込み完了後の処理を記述できますから、
それを指定して、読み込み後に再度イベントの設定をやりなおす、という手もあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptファイルは1つに統...
-
javascriptとApacheの設定
-
呼出したjsファイル内で他jsフ...
-
Javascriptでのツリーメニュー...
-
JavascriptとJqueryを混在し記述
-
javascriptの外部ファイルで行...
-
マウスが画像の上に来たとき音...
-
JavaScriptで外部htmlをインク...
-
別ファイルのfunctionの読み込み方
-
複数のJavascriptを1つのscrip...
-
外部ファイル名を変数で指定で...
-
プルダウンメニューを別ファイ...
-
メールフォーム、受信メールの...
-
cssにjavascriptを入れる?呼び...
-
<a href="#" …>の意味を教えて...
-
javascriptでalertの文字列をコ...
-
function の return 値を表示し...
-
<aタグで変数に文字を代入
-
bodyにidをつける理由は何ですか?
-
bodyにwidth:100%をつける理由は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルのfunctionの読み込み方
-
cssにjavascriptを入れる?呼び...
-
javascriptファイルは1つに統...
-
複数のJavascriptを1つのscrip...
-
Dreamweaver で 外部JSを読み込...
-
javascriptとApacheの設定
-
JavaScriptのエラー ( 関数の...
-
JavascriptとJqueryを混在し記述
-
ひとつの外部ファイルに複数の...
-
プルダウンメニューを別ファイ...
-
【Google Apps Script】「ライ...
-
外部ファイルを読み込ませるた...
-
JavaScriptで他のファイルのhtm...
-
ホームディレクトリを示すチル...
-
javascriptのalertで文字化けが...
-
外部読み込みで動かないときの...
-
条件分岐で、読み込む外部スク...
-
呼出したjsファイル内で他jsフ...
-
メールフォーム、受信メールの...
-
<script src="">読み込まない
おすすめ情報