2つのHTMLがあり、両方ともjQueryプラグインを使っています。
今回、a.html側に、jQuery loadで、b.htmlを読込みました。
■a.html
jQuery 本体
jQueryUI
jQueryForm
jQuery.HashChanged
など基本js(多数)
■b.html
jQuery.Gallerific
jQuery.Fancybox
jQuery.fixPing
などメディア系統js(多数)
■困っていること
両方とも、$(function(){ ... }) 構文を使って、DOMの展開完了を待っているのですが、「読込まれる側=b,html」の、$(function(){ ... }) がうまく働いていないようなのです。
b.html 単体では何の問題もないのですが、a.htmlにloadされると、遅延読み込みがききません。
元である a.html で全部のjQuery プラグインを読むのは重すぎるため、各々で必要なプラグインを都度、読むようにしたいのですが、その場合、読み込まれる側の実行遅延(DOM展待ち)はどのようにしたらいいでしょうか?
No.1ベストアンサー
- 回答日時:
b.htmlはajaxを用いてスクリプトで読み込んでいるため、ドキュメントレディのようなイベントは発生しません。
タイミングを調整するにはloadのコールバック関数を利用してあげる必要があります。
一方で、もともと別々の文書だったものをまとめてしまうので、仮にスクリプトを実行できても、記述方法によっては問題がでそうな気がします。
ご質問文から推測するに、失礼ながらそちらの方がさらに面倒そうに思えます。
簡単な方法として考えられるのは、ajaxを利用せず、別文書としてiframeなどを利用して表示するようにすれば、問題なく動作すると思いますが?
>全部のjQuery プラグインを読むのは重すぎるため
ご希望の内容は、結局のところ、そういうことを意味していませんか?
表示されるまでの待ち時間について「重い」とおっしゃっているのであれば、スクリプトを後から読み込むように制御するとか…
回答ありがとうございます。
なるほど。。$.load()では、ドキュメント・レディが使えないのですね。
何かそんな感じがしました。
読み込んだプラグインの展開より前に、それを使うJavascriptが走っているようです。
読込み元で先にプラグインを読んでおけばOKなのですが、特定のページでしかつかわないプラグインを全部のページで読むのに抵抗があります。
で、iframeなのですが、すでにデザインやアーキテクチャが決まってしまっていて、変更できません。
またこれ以外に、fancyboxで読み込むページもあります。
おっしゃる通り、読み込まれる側のJavascriptの起動をコールバックからにしてやってみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript functionはhtmlやjsに2度使えませんか 2 2022/08/03 19:55
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面遷移を行わずに同一ページ...
-
初心者です。gulpでコンパイル...
-
画像の表示位置
-
Google scriptについて 至急scr...
-
出発駅A、到着駅Bを選択すると...
-
Q&Aの掲示板を作成していてヤフ...
-
フォームが空欄の時にフォーム...
-
コードレビューをお願いします。
-
追加ボタンを押した際に ok ボ...
-
sessionStorageを調べています。
-
セレクトボックスを2つ設けて選...
-
EasyUIのSubGrid(jquery)にお...
-
GASに文字列として関数を入れる...
-
コードレビューをお願いします。
-
React hooksが値を返して配列変...
-
セレクトを全て選択されていな...
-
【GAS】WEBアプリでハイパーリ...
-
jsで質問です。 ボタンが二つ存...
-
セレクトボックスで配列を呼び...
-
1度きりではなく、繰り返し、挙...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インラインフレームを自動更新...
-
jQueryでloadした部分に.jsが効...
-
jQuery toggle() 戻るで開いた...
-
javascriptからのphpクラス...
-
リンク元のURLのパラメータでペ...
-
一定時間ごとに表示内容を切り...
-
jQueryで追加した要素がマウス...
-
フレーム内の要素へのXPATHはど...
-
Folder.selectDialog()について
-
JQueryで動的生成のスライダが...
-
連番タイトル名を基準にリンク...
-
EUC-JPに対応しているjQueryを...
-
AjaxでSJISファイル読み込みす...
-
jQuery loadで要素差し替え
-
親フレームの存在確認
-
XHTMLで外部JSファイルを読み込...
-
HTMLDivElement等の比較、評価...
-
日付が変わると自動更新
-
JavascriptからPHPへのAjax通信...
-
Javascriptを使ってQRコード読...
おすすめ情報