0

Gmailが受信トレイやゴミ箱などを切り替えるのと同じように、jqueryajaxを使用して1つのページから現在のページのdivにコンテンツをロードしています。jQueryのloadメソッドを使用しています

$("#divGlobal").load("newPage.html #container");

必要なコンテンツをdivにロードします。

newpage.html #containerまた、それに関連付けられているjavascript&cssファイルが関連付けられています。現在、必要なタグ<script><link>タグを追加してロードしています<head>が、常に機能するとは限りません。ファイルは常に読み込まれますが(FirefoxでXHR情報を監視しています)、常に正しく機能するとは限りません。

たとえば、page1.html関連するファイル(UIのjQuery関数を含む)をロードすると、すべてが正常に機能します。ただし、ロードpage2.htmlしてに戻るとpage1.html、ファイルはロードされますが、jQuery関数が応答しません。

ロードしているコンテンツに関連付けられているjavascriptおよびcssファイルをロードするためのより良い方法はありますか?

4

1 に答える 1

1

以前にロードしたものと同じJavaScriptをリロードすると、すべての変数と関数が以前のロードからすでに定義されており、一部の状態が以前のロードからすでに存在している可能性があるため、希望どおりに実行されない場合があります。同じページに再度ロードすることは、最初から開始されません。これはおそらくあなたが望むものです。

ロードするページを制御する場合は、コンテンツ内のスクリプトを特別に設計してロードするだけで機能するようにjavascriptを記述できます。これにより、スクリプトが希望どおりに状態を設定し、以前にロードされたものをクリーンアップします。状態ですが、そのように機能するには、そのように記述する必要があります。これには、スクリプトの最初の呼び出しで変更された可能性のあるDOM変更、イベントハンドラー、グローバル変数などのリセットが含まれます。

于 2012-08-04T00:09:39.983 に答える