jQuery $未定义-使用窗口加载的问题

Bir*_*den 0 javascript jquery

我在$ not defined error下面的第二种情况下得到了,但在第一种情况下没有。jQuery已安装并正在该站点上运行。

$在此使用的任何代码都运行良好:

jQuery(function($) {  
  alert("Yay!");
});
Run Code Online (Sandbox Code Playgroud)

此错误中的任何内容都包含$ not a function

jQuery(window).load(function($) { 
  alert("Why not!");
});
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 5

错误是因为load()事件处理程序不接受jQuery对象作为参数document.ready(这是您的第一个示例的简称)。在第二个示例中,$变量实际上是对Event对象的引用,因此,您可能正在调用不存在的方法。

如果要用于$引用jQuery,则默认情况下应可用。如果不是出于某种原因(例如,如果您使用的是Wordpress),则可以使用jQuery.noConflict()或IIFE重新对其进行别名。

还值得注意的load()是已弃用。要挂接到window.load事件,请使用on()

jQuery(window).on('load', function() {
  // your logic here...
});
Run Code Online (Sandbox Code Playgroud)