0

.data()jQuery関数を使用して情報を保存する Web アプリを更新しようとしています。この更新には、同じページで div だけを使用するのではなく、さまざまな種類の情報に個別のウィンドウが表示されるように、インターフェイスをリファクタリングすることが含まれます。一部のプラグインの動作方法が原因で、プラグインを呼び出すコードが別のウィンドウに移動され、必要なウィンドウで実行されるようになりました。ただし、これらのプラグインで使用されるコールバックの多くは、.data()保存された情報を見つけるために使用されますが、保存されたデータを設定するコード.data()は親ウィンドウにあり、データを DOM にアタッチするようには見えず、アタッチされた場所に保存します。そのため、子ウィンドウでは、コールバックは探しているデータを見つけることができなくなります。

を使用して動作しcall(parent, DOMelement.data);ますか? そして、これに対処するためのより適切な方法はありますか?

前もって感謝します!

4

1 に答える 1

0

すべての提案をありがとう。現在のセッションを超えて情報を保存する必要がないため、これは Cookie を使用していませんでした。すべてのやり取りは JavaScript を介して行われ、最後に保存するまでサーバー リクエストはありません。通信する必要があるウィンドウはすべて同時に開いているため、call()提案されています。構文と機能がほぼ同じだったので、.prop代わりに使用してこれを解決することになりました。.dataこれにより、データが関連するウィンドウの DOM に直接関連付けられます。$_SESSION は、各ページがサーバーから要求された場合にのみ機能します。

そのため、複数のウィンドウから同時に、またはページを更新せずにアクセスする必要がある情報を保存しようとしている場合は、jQuery.prop()関数を使用してデータを DOM に添付できます。.attr()も機能しますが、.prop()を使用して値に直接アクセスできます。表記。関数は循環参照を防ぐように設計されていますが、情報をどこかに保存するため、コンテキストごとに個別に情報を保存.dataするを使用しないとアクセスできません。.data

于 2014-12-17T22:26:29.803 に答える