簡體   English   中英

$(document).ready 不會在 iOS 上觸發

[英]$(document).ready not firing on iOS

我的頁面上有以下代碼:

<script src="//path.to/jquery.min.js"></script>

<script>
 /* Statements #1 - Defining some variables... */
</script>

<script>
$(document).ready(function () {
 /* Statements #2 - Doing some stuf... */
});
</script>

上面的代碼在桌面和 Android 設備上運行良好,但在 iOS 設備上運行時,語句 #2 不起作用。 我檢查了控制台,沒有錯誤。

只是為了測試,我通過復制/粘貼在控制台上執行了語句 #2,它按預期運行 - 這不僅會自動工作,頁面加載完成。

PS.:我在 iOS 設備上遇到錯誤 - 在 iPhone 上使用 Safari 進行測試,並使用iOS Webkit Proy在帶有 Chrome 遠程的 Windows 10 上進行調試

我發現了問題:在我的代碼中的某個地方,我有一個具有預定值的函數,只有 Safari 拋出了錯誤。 所以,我正在使用這個:

function myFunction(parameter) {
    /* Coll stuf here... */
}

取而代之的是:

function myFunction(parameter = undefined) {
    /* Broken code... */
}

我遇到了同樣的問題,但我發現這是因為我在腳本包含的末尾添加了“async defer”,這導致該函數在可用之前被調用 - 導致所有后續 javascript 函數失敗。 不知道為什么這只發生在 Safari 而不是 Chrome/FF,但有趣的東西。

<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/jquery.validate.min.js" async defer></script>

<script>
  $(document).on('ready', function() {
    $("#myForm").validate();
  });
</script>

刪除“異步延遲”部分(谷歌告訴我添加以提高頁面加載速度)解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM