3

.data() jQueryAPIリファレンスを読んでいたところです。'data-*'事前に、ページ要素に属性を割り当てることで機能するのではないかと推測しました。事実上へのショートカット$('#foo').attr('data-foobar', 'bar')

(1)このように機能したと想像してみてください。そうではないようですが、あるjQuery Mobileページから別のページに切り替えてから元に戻した場合、'data-*'属性は引き続き要素にアタッチされますか、それともjQMはダウンロードしたHTML?

ただし、リファレンスでは、ページの最初のコメントに次のように記載されています。

データは要素に保存されません。実際には$.cache-「アレックス」に保存されています

(2)これは本当ですか?

(3)これはjQMページ遷移間で持続しますか?2ページをクリックして、1ページのdivは$('#bar').data('foo')どこに#barあるのかと尋ねると、どうなりますか?

jQMアプリのコンテキストでは.data('*','*')なく、すべてのコンテンツを1つのHTMLファイルに入れて、アプリ外のストレージにしか利用できない状況でCordova / PhoneGap上で実行する方が望ましいと思いますか?.attr('data-*','*')localStorage

具体的には、はい。少しアナル、はい。

はい、あなたの答えを楽しみにしています。

4

1 に答える 1

3

1つのドキュメントに複数の要素がある複数ページのテンプレートを使用している場合data-role="page"、データはトランジションを通じて保持されます。これは、すべてのページが常にDOMにあり、DOMから削除されることはないためです。

さて、AJAXを介して疑似ページをプルインすると、話は別です。リモートページにリンクすると、jQuery MobileはAJAXを介してページを取得し、ビューに移行します。デフォルトでは、そのページを離れると、メモリを節約するためにDOMから削除されます。ページが削除されると、そのデータも削除されます。data-cache="true"外部data-role="page"要素に属性を設定することで、この動作を停止できます。

ドキュメント: http: //jquerymobile.com/demos/1.1.0/docs/pages/page-cache.html

于 2012-06-18T16:28:33.610 に答える