2012-01-11 158 views
0

我的jQuery移動應用程序由多個頁面組成。

無論何時我重新加載頁面,無論應用程序中的哪個頁面,$(document).ready()函數都被執行。我希望它只能在應用程序的主頁面上執行。

這是怎麼回事?我希望它只能在主頁面上運行。

回答

1

請仔細閱讀

重要須知:pageInit(),而不是$(文件)。就緒()

你的jQuery學習的第一件事是調用 $(document).ready()函數中的代碼,因此只要 DOM被加載。但是,在jQuery Mobile中,Ajax用於在導航時將每個頁面的 內容加載到DOM中,DOM準備好的 處理程序僅對第一頁執行。要在加載和創建新頁面時執行代碼,可以綁定到pageinit事件。 此事件在本頁底部詳細解釋。

也爲JQM頁面的信息,請閱讀

+0

從文本引用上面:「DOM準備處理程序只執行第一頁」,正是我想說的是,無論您在應用程序中的哪個位置執行此$(document).ready函數,都會按下重新加載按鈕。這是正常的嗎? – user1107888 2012-01-11 17:09:20

+0

使用pageInit()不是$(document).ready()for jQM – 2012-01-11 18:40:09

+0

使用pageinit事件會導致另一個令人沮喪的問題。我需要下載一個json文件,解析並保存它然後使用它。我想下載並保存它在pageinit處理程序中使用它,然後在pageshow處理程序中使用它。實際發生的是,該文件是在pageinit處理程序中下載的,但不是通過成功處理程序保存文件,而是在下載和保存之間觸發pageshow,然後成功處理程序叫做。我一次又一次地證實了這一點,這種行爲是一致的。 – user1107888 2012-01-12 13:20:24