我在1.7.1jQuery上运行了一些脚本,现在我在Wordpress的1.12.4上运行。代码无法运行。我有两个错误运行:
未捕获类型错误:$不是函数https://grumans.ca/delicatessen/:1734
页面上的这一行是$(window(.load(function(({Grumans.deli.int((;}(;
和这个
未捕获类型错误:$不是函数https://grumans.ca/js/script.js:1162
$(window).load(function(){
//Grumans.deli.init();
});
我找到了我认为的解决方案。有人为另一篇文章发帖说你可以这么做。
jQuery(function($) {
$(window).on("load", function() {
Grumans.deli.init();
});
});
这消除了应用于页面和脚本代码时的两个错误,并允许我的代码运行,但前提是我刷新页面两次。当我第一次点击页面时,什么也没发生。我不是一个代码编写者。有人知道为什么以及如何修复代码,以便在页面加载后立即运行吗?
如果不看到html,很难确切地知道在特定情况下发生了什么,但考虑到您所展示的内容,这可能会起作用:
jQuery(window).load(function(){
console.log('called on page load');
});
第一个示例不起作用的原因是$
变量尚未附加到window
对象。不过,看起来您确实可以访问jQuery
,这是jQuery附加到窗口的另一个全局,该窗口是$
的别名。
您使用的JQuery版本不像旧版本那样默认定义$。如果您真的想要加载事件,可以将$
替换为JQuery
,但通常DOMReady是一个更有用的事件。有些图像可能还没有完全下载,但您通常可以运行任何其他操作DOM的函数。
您放入的代码在DOMReady上运行,这意味着Load
处理程序在此之前不会安装,到那时可能为时已晚。
jQuery(function($) {
Grumans.deli.init();
});
上面的代码应该在每次加载页面时运行Grumans代码,但它是在DOMReady事件中运行的。