jQuery Mobileでページの挙動がおかしいときは$.mobile.urlHistroyを参照してpageを調整してみる

jQuery Mobile でページ遷移がおかしいとき

しょっちゅうあります.

これらの挙動へのカウンターとしてページ遷移する直前に,保存されているpageオブジェクトを取得してプロパティを書き換えたりすることがあります.

var active = $.mobie.urlHistory.getActive();
var prev = $.mobie.urlHistory.getPrev();
var next = $.mobie.urlHistory.getNext();

こんなカンジで,オブジェクトが手に入ります.

このオブジェクトがpageを持っていますので,適当に操作すると症状が改善したりします.

たとえばの例

追記.jQuery Mobile Beta1でこの挙動は改善されているため,これは古いノウハウとなりました.

jQuery MobileのreFocusというメソッドが,前のページに戻ったときに発動して,最後にクリックしたオブジェクトの位置にフォーカスしようとした際に,レンダリングが崩れていました.

そのときに,前のpageが持っている"最後にクリックしたオブジェクト"のデータを削除することで,reFocusが暴発しないようにして対策しました.

$.mobile.urlHistory.getPrev().page.jqmRemoveData('lastClicked');

まあ,そんな小ネタ.こういう小細工しなくても済むようになるといいですね.

JavaScriptで,jQuery Mobileの挙動をどうこうするときは,jQuery Mobile Docs - Methodsに載っている情報も参考になります.


Author

ahomuAyumu Sato

KINTOテクノロジーズ株式会社

Web 技術、組織開発、趣味など雑多なブログ。技術の話題は zenn、ご飯の話題はしずかなインターネットにも分散して投稿しています。

Bio: aho.mu
X: @ahomu
Zenn: ahomu
GitHub: ahomu
Sizu: ahomu

Related

Latest

Archives

Tags

Search