読者です 読者をやめる 読者になる 読者になる

読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

pageinit

jQuery Mobile

head部でロードするスクリプトの場合、jQuery Mobileのイベントpageinitはliveメソッドでバインドすること。
bindメソッドだと(bindすべきDOMがまだ読み込まれておらず$での戻り値が空なので)コールされない。

pageinitハンドラは$(document).readyよりも先に呼び出されることにも注意。
呼び出される順は、
mobileinit, pageinit, pagebeforeshow, pageshow, $(document).ready, document.body.onload, (その後、遷移したとき他のページのpageinit, ...)の順。

mobileinit時点ではまだDOMは読み込まれていないから要素の操作はできない。
pageinitハンドラがコールされた時にはまだ描画しておらず、ヘッダ、フッタなど要素のサイズが確定していない。