2013-03-26 22 views
0

如果你有一個哈希的URL,例如:jQuery mobile何時讀取散列?

www.my_jqm_site.com/#some_page_request

...在什麼點JQM頁面事件序列中確實JQM閱讀哈希?

Event sequence when navigating from jqm_page_A to jqm_page_B ... thanks Muhammed Basil. 

    - document --- script time (js is readable, but DOM is not ready yet) 
    - document --- ready 
    - page B --- pagebeforecreate 
    - page B --- pagecreate 
    - page B --- pageinit 
    - page A --- pagebeforehide 
    - page B --- pagebeforeshow 
    - page A --- pageremove 
    - page A --- pagehide 
    - page B --- pageshow 
    - body  --- onLoad 

編輯:如果我改變了哈希在劇本時間:

<script> 
    window.location.hash = "#some_other_page_request" 
</script> 

它將覆蓋進來的哈希值, '#some_page_request',從而JQM將導航到代替。

這表明jqm在腳本時間(即,在(或之後),$(document).ready(...))讀取哈希值。

+1

你有沒有試過看jQuery Mobile的非微軟版本並搜索你命名的每個函數,然後單詞'hash'? – Ohgodwhy 2013-03-26 09:40:54

回答

1

pagebeforehide事件中。

這是第一個元素的過渡舞會頁面A到網頁B時被分派

說明:觸發對「fromPage」我們正在轉換遠離,實際過渡動畫開工前。

這是第一個接收數據對象作爲第二個參數的頁面。該數據對象具有包含我們要轉換到的頁面DOM元素的對象。

正式文件:http://api.jquerymobile.com/pagebeforehide/

之前,所有的事件都是共同創建頁面的事件,他們也將在初始應用程序加載過程中觸發時,第一頁是要顯示:

- page B ---pagebeforecreate 
- page B ---pagecreate 
- page B ---pageinit 

在那3個事件系統沒有知識,這是一個應用程序加載或頁面轉換。他們只是爲了創造一個新的頁面。

+0

但如果您直接訪問url:www.my_jqm_site.com/#some_page_request,則不會觸發pagebeforehide – dsdsdsdsd 2013-03-26 09:49:00

+0

然後,這是完全不同的東西。在這種情況下,它們都不能用於讀取#。它在框架初始化期間被觸發。 – Gajotres 2013-03-26 09:58:41

+0

還有一件事,如果你想知道什麼時候通過#初始化頁面,那麼你不能使用頁面事件。在頁面被選擇用於初始化之後,將發生頁面事件。我的主要答案只會在頁面開始從一個頁面轉換到另一個頁面時纔會告訴您。 – Gajotres 2013-03-26 10:11:51