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

overflow, Inc.VPoE

東京資本で生きる名古屋の鳥類

Web 技術、組織開発、趣味など雑多なブログ。技術の話題は zenn にも分散して投稿しています。

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

Related

Latest

Archives

Tags

Search