首頁 > web前端 > js教程 > jQuery Mobile:`$(document).ready()` 與 `$(document).on('pageinit')` – 我該使用哪一個?

jQuery Mobile:`$(document).ready()` 與 `$(document).on('pageinit')` – 我該使用哪一個?

Mary-Kate Olsen
發布: 2024-12-31 05:03:16
原創
126 人瀏覽過

jQuery Mobile:  `$(document).ready()` vs. `$(document).on('pageinit')` – Which Should I Use?

jQuery Mobile 1.4 更新

原始文章適用於 jQuery Mobile 1.4 之前使用的舊的頁面處理方式。這種舊方法現在已棄用,並將保持有效,直到 jQuery Mobile 1.5(含),這意味著至少在明年和 jQuery Mobile 1.6 之前您仍然可以使用下面提到的所有內容。

舊事件,包括 pageinit ,不再存在並已被 pagecontainer 小部件取代。 Pageinit 完全刪除,您可以使用 pagecreate 代替,保持不變。

如果您對處理頁面事件的新方式感興趣,請參閱這篇文章。否則,請隨意繼續閱讀本文,因為它不僅涵蓋頁面事件,還可能提供有價值的資訊。

較舊的內容

本文也可以作為我的部落格的一部分找到這裡.

$(document).on( 'pageinit') vs $(document).ready()

當你第一次學習jQuery 時,你會被教導在 $(document).ready() 函數中呼叫程式碼,這樣一切都會在 $(document).ready() 函數內執行DOM 已載入。然而,在 jQuery Mobile 中,Ajax 用於在您導航時將每個頁面的內容載入到 DOM 中,這表示 $(document).ready() 將在載入第一個頁面之前觸發。因此,任何用於頁面操作的程式碼都將在頁面刷新後執行,這可能會導致微妙的錯誤。在某些系統上,它可能看起來運作正常,但在其他系統上,它可能會導致不穩定且難以重複的行為。

經典 jQuery 語法:

解決此問題(這確實是一個問題),jQuery Mobile 開發人員創建了頁面事件。簡而言之,頁面事件是在頁面執行的特定點觸發的事件。其中一個頁面事件是 pageinit,我們可以如下使用它:

我們可以透過使用頁面 ID 而不是文件選擇器來更進一步。假設我們有ID 為index:

的jQuery Mobile 頁面,要執行僅適用於索引頁面的程式碼,我們可以使用以下語法:

pageinit 事件將在每次頁面即將載入並首次顯示時執行時間。除非手動刷新頁面或關閉Ajax頁面加載,否則不會再次觸發。如果您希望每次造訪頁面時都執行程式碼,最好使用 pagebeforeshow 事件。

這裡有一個示範此問題的工作範例:http://jsfiddle。網/Gajotres/Q3Usv/

關於這個問題的更多說明。無論您使用的是具有多個頁面的 1 HTML 還是多個 HTML 檔案範例,都建議將所有自訂 JavaScript 頁面處理分開到一個單獨的 JavaScript 檔案中。這不會使您的程式碼變得更好,但它將提供更好的程式碼概述,特別是在創建 jQuery Mobile 應用程式時。

還有另一個特別的 jQuery Mobile 事件,稱為 mobileinit。當 jQuery Mobile 啟動時,它會在文件物件上觸發 mobileinit 事件。要覆蓋預設設置,請將它們綁定到 mobileinitmobileinit 用法的一個很好的例子是關閉 Ajax 頁面載入或更改預設的 Ajax 載入器行為。

頁面事件轉換順序

所有頁面事件的清單可以在這裡找到:http://api.jquerymobile.com/category/events/

假設我們有頁面A和頁面B;這是卸載/載入順序:

  1. 頁面B - 事件pagebeforecreate
  2. 頁面B - 事件pagecreate
  3. B頁-活動pageinit
  4. B頁-活動
  5. pageinit
  6. 事件
  7. pagebeforehide
  8. 頁A - 事件
  9. pageremove
  10. 頁A -事件
  11. pagehide頁A -事件
  12. pagehide
  13. 🎜>頁事件
  14. pagebeforeshow

頁 B - 事件 pageshow

  • 為了更好地理解頁面事件,請閱讀這個:
載入前頁,頁面載入,

以上是jQuery Mobile:`$(document).ready()` 與 `$(document).on('pageinit')` – 我該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板