JQM パネルにかなり複雑なメニューがあり、アプリケーションのすべてのページからアクセスできるようにする必要があるとします。これを実装する 1 つの方法は、Panel コードをすべてのサブページにコピー アンド ペーストすることです。
これはうまくいきました。ただし、単純なパネルを使用した小さなアプリケーションにのみ適しています。Panel コードの大部分をコピーして他のすべてのページに適用するのは非常に面倒であり、後で DOM に読み込まれるページが増えると、パフォーマンスの問題が確実に発生します。
だから私はそれを別の方法でやろうとしました - 自分でパネルを操作しました。イベントをタップして、pagecreate
読み込まれたページに Panel を追加しました。このようにして、DOM をきれいに保ち、常に 1 つの Panel を常に扱うことができます。
しかし、それはうまくいきませんでした。あるページから別のページに強制的に移動してpageContainer.trigger('refresh')
orを呼び出した後、パネルが再初期化に失敗したようpageContainer.trigger('create')
です。
だから私はこれをやった - Panel htmlをjs変数に保持し、前のページのパネルを削除せずに、ロードされたページにパネルhtmlを追加します。これは機能しているようです。
このアプローチでは、DOM に Panel が 1 つしかないことを実際に処理することはできませんが、少なくともすべてのページにそれをコピーして貼り付ける必要はありません。
今はうまくいきますが、私はそれほど満足していません。この質問をここに投稿しています。アプローチ 2 が機能しなかった理由を誰かが説明してくれることを願っています。
** 私のアプリはマルチページ テンプレートを使用しています
乾杯