初めてロードしたときに完全に機能するjQueryモバイルダイアログがありdialog.close();
ますが、ブラウザのボタンまたは戻るボタンをクリックしてダイアログを再度開始すると、ダイアログはjQuery UIタグでラップされず、スタイルが適用されません。
初めて動作しますが、その後は動作しません。古いデータがDOMに存在する可能性があるためだと思いますが、Firebugでページを調べたところ、存在する古いデータが見つかりません。最初の開始後、すべてのインスタンスで同じjQueryIDを使用していることに気づきました。element.data();
次に、console.logsの例を示します。
Before the dialog is ever created:
Object { jQuery16102984105026891979={...}, role="dialog"}
After it has been created:
Object { jQuery16102984105026891979={...}, role="dialog", page={...}, more...}
After the `dialog.close();` function has been activated:
Object { jQuery16102984105026891979={...}, role="dialog", page={...}, more...}
After it has been created again:
Object { jQuery16102984105026891979={...}, role="dialog", page={...}, more...}
スタイリングが2回目に適用されないのはなぜですか?ダイアログはで開始されてい$.mobile.changePage()
ます。
アプリケーションはMVCに組み込まれているため、表示するコードは実際にはありません。問題を再現しようとすると、多大な労力が必要になります。
jquery.comで同様の未回答の問題を見つけました:http://forum.jquery.com/topic/dialog-not-applying-style-on-second-time-loading。