摘要:[jQueryMobile] Pageinit 與 pageshow 的作用
對於 jQueryMobile 的入門,相關程式結構往往令人一頭霧水,例如要使用 jQueryMobile 的元件和撰寫相關程式,必須寫在 pageinit 或 pageshow 裡頭,但是甚麼是 pageinit 和 pageshow 呢?( 以下列出 jQueryMobile 的結構 )
$(document).on("pageinit", "#test", function () {
//頁面第一次載入會執行
alert('pageinit');
});
$(document).on("pageshow", "#test", function () {
//頁面顯示後會執行
alert('pageshow');
});
如果我們先按照字面解釋,pageinit 也就是頁面第一次執行的時候會有的行為 ( 或要執行的 function ),pageshow 則是每次頁面顯示的時候就會有的行為 ( 或要執行的 function ),pageinit 的行為只會發生一次,而 pageshow 會在每次這個頁面呈現時都會發生,有點像是我們認識新朋友,只有在第一次的時候會自我介紹,之後每一次見面就不會自我介紹,只會打招呼,是差不多的道裡。( 例子好像舉的很爛哈哈 )
總之,可以看看這個範例:jQueryMobile Pageinit 與 pageshow 的作用 ( 使用 EZoApp,點選 preview 可以看效果 )
當我們點選按鈕進入 test 頁面時,首先觸發 pageinit 的行為,所以彈出一個上面標註 pageinit 的警告視窗,接著觸發 pageshow 的行為,彈出 pageshow 的警告視窗,之後,不管如何點選,都只會出現 pageshow 的視窗,因為第一次的行為以經發生過了,除非將視窗完全關閉 ( 或重新 preview ),才會觸發 pageinit 的行為。所以如果大家寫 jQueryMobile 的程式,要特別注意喔!