我有一些腳本在 1.7.1 jQuery 上運行,現在我在 Wordpress 的 1.12.4 上運行。代碼不會運行。我有兩個錯誤運行:
未捕獲的型別錯誤:$ 不是函式 https://grumans.ca/delicatessen/:1734
頁面上的這一行是 $(window).load(function(){Grumans.deli.init();});
還有這個
未捕獲的型別錯誤:$ 不是函式 https://grumans.ca/js/script.js:1162
$(window).load(function(){
//Grumans.deli.init();
});
我找到了我認為的解決方案。有人為另一篇文章發布了您可以執行此操作的帖子。
jQuery(function($) {
$(window).on("load", function() {
Grumans.deli.init();
});
});
這消除了應用于頁面和腳本代碼時的兩個錯誤,并讓我的代碼運行,但前提是我重繪 頁面兩次。當我第一次點擊頁面時,什么也沒有發生。我不是代碼撰寫者。有誰知道為什么以及如何修復代碼,使其在頁面加載后立即運行?
uj5u.com熱心網友回復:
在不查看 html 的情況下,很難確切地知道在您的特定情況下發生了什么,但鑒于您所提供的內容,這可能有效:
jQuery(window).load(function(){
console.log('called on page load');
});
您的第一個示例不起作用的原因是$變數尚未附加到window物件。看起來您確實有權訪問jQuery它,這是 jQuery 附加到 window 的另一個全域變數,它是$.
uj5u.com熱心網友回復:
您使用的 JQuery 版本不像舊版本那樣默認定義 $ 。如果你真的想要加載事件,你可以替換$為JQuery,但通常 DOMReady 是一個更有用的事件。某些影像此時可能尚未完全下載,但您通常可以運行任何其他操作 DOM 的函式。
您放入的代碼在 DOMReady 上運行,這意味著Load處理程式直到那時才安裝,到那時可能為時已晚。
jQuery(function($) {
Grumans.deli.init();
});
每次頁面加載時,上面的代碼都應該運行 Grumans 代碼,但它是在 DOMReady 事件上運行的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/384251.html
