为什么在jQuery中出现$ is not defined的错误
jQuery开发人员面临的最常见的错误之一是”$ is not defined”错误。起初,这可能是一个小错误,但考虑到超过70%的网站以某种形式使用jQuery,这可能会变成一个巨大的混乱。
此错误背后的原因:
这个错误基本上是在开发人员在脚本中声明一个变量之前使用它时产生的。
示例:
// ReferenceError: num is not defined
num;
declaration
var num;
// No more errors
data;
输出:
在上面的例子中,我们看到‘num’在它被声明之前就已经被调用了。这就是为什么在第一行抛出了ReferenceError: num is not defined。在第三行中,’num’被再次调用。然而,这次不会有错误发生,因为这个变量已经在脚本的第二行中被定义了。
这是一个非常常见的错误。避免这种情况的最好方法是在调用所有变量和函数之前将其吊起。请看另一个例子。
示例:
//reference error
process();
process = function(){
var a = 2;
console.log(a);
}
// no error
process();
输出:
此错误最常见的原因:
- 在jQuery脚本文件之前嵌入jQuery插件
$’是用来声明jQuery中的任何变量。一个插件基本上是一个事先写好的代码块。这些块使用预定义的jQuery函数和方法。因此,有必要在插件文件之前嵌入jQuery脚本文件。否则,应用程序将无法理解jQuery的编码。
Correct Order:
<script src="/lib/jquery.min.js"></script>
<script src="/lib/jquery.plugin.js"></script>
- CDN托管的jQuery问题。
有可能是网站使用的CDN托管的jQuery版本在客户的连接中被屏蔽了。这种类型的问题通常是在来自中国、印度尼西亚、韩国等国家的IP地址上观察到的。
为了避免这个问题,最好是提供一个本地托管的后备版本的jQuery。
示例:
//an external CDN link
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
</script>
//fall back to local jQuery
<script>
window.jQuery || document.write('
<script src="http://www.mywebsite.com/jquery.min.js"><\/script>'))
</script>