0

当出现错误时$(document).ready(function(){ is undefined,这是​​因为 jquery 库不在我的页面上,但是发生此错误是因为我的页面上有一个小的 jquery 插件来解决当 jquery 库在特定时间出现时的问题用户的会话。

除了在发生此特定错误时将 jquery 库放在页面上之外,还有什么解决方案可以简单地检查 jquery 是否存在或整个页面上不会发生错误?

4

5 回答 5

8

假设您出于某种原因不想普遍使用 jQuery,您可以安全地检查 jQuery 是否未通过以下方式加载:

if(window.jQuery == undefined)

因为访问全局window对象的未定义属性不会引发错误,而使用未声明的变量名会引发错误。(请注意,这是假设不变的undefinedvar undefined;如果您无法做出该假设,则可以在此行之前添加。)

或者简单地说:

if(typeof jQuery == 'undefined')

因为typeof不抱怨未声明的变量名。(具体来说,根据ECMAScript 规范,在返回给定标识符时返回typeof字符串。)"undefined"IsUnresolvableReferencetrue

于 2013-05-09T13:25:04.617 回答
7
// Only do anything if jQuery isn't defined
if (typeof jQuery == 'undefined') {

} else { // jQuery was already loaded   
   // Run your jQuery Code
};
于 2013-05-09T13:25:37.590 回答
3

尝试

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  
} else {
    // jQuery is loaded
}

Reference

您还可以检查是否加载了特定的 jQuery 插件。

于 2013-05-09T13:25:23.557 回答
2

以下代码将在未注册时注册 jQuery 库。

<script>window.jQuery || document.write('<script src="/Scripts/jquery-1.7.2.min.js"><\/script>')</script>
于 2013-05-09T13:25:57.113 回答
0

布尔短路运算符可以帮助:

window.jQuery && (function($) {

     $.fn.myPlugin = ...

})(jQuery);

如果 jQuery 存在,它只会创建插件。

于 2013-05-09T13:26:29.370 回答