jQuery $(window).on( "load" , function() 仅在刷新后启动



我在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事件中运行的。

最新更新