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ランキング
-
テーブルの形式を整えるJavascript
-
クリックテキストを次ページに表示
-
JQueryで動的生成のスライダが...
-
google map api で下記のhtmlが...
-
jQuery toggle() 戻るで開いた...
-
jQueryのblockUIをformのボタン...
-
jQuery3 reset()が効かない。
-
Javascriptを使ってQRコード読...
-
変数にドットをいれることはか...
-
スクリプトの外部からの読み込み
-
[jQuery UI] sortableを使いaja...
-
IndexedDB を使ってファイルア...
-
readyStateが4にならない原因
-
jQueryでloadしたphpをapendTo...
-
パソコンで動くjavascriptがス...
-
WebbrowserよりHTMLのValue値を...
-
Selenium4でボタンをクリックで...
-
Rails3でのクリックされたボタ...
-
ajaxからphpにpsotしたときの日...
-
Google Apps Scriptを利用した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インラインフレームを自動更新...
-
jQueryでloadした部分に.jsが効...
-
一定時間ごとに表示内容を切り...
-
location.replaceでの移動
-
jQueryで追加した要素がマウス...
-
jQuery toggle() 戻るで開いた...
-
連番タイトル名を基準にリンク...
-
フレーム内の要素へのXPATHはど...
-
リンク元のファイル名を表示し...
-
EUC-JPに対応しているjQueryを...
-
javascriptで要素の取得が出来ない
-
リンク元のURLのパラメータでペ...
-
自動で現れるTOPにもどるボタン...
-
テーブルの形式を整えるJavascript
-
javascriptからのphpクラス...
-
画面(ウィンドウ)/画像の拡...
-
Safariでの onload="getData()"...
-
$.postとPerlのデータ受け渡し...
-
タブに地図を入れたら、中心が...
-
座標のみでクリックする方法
おすすめ情報