JSLint 警告“文档”在 jQuery(document).ready 上没有完全定义

Posted

技术标签:

【中文标题】JSLint 警告“文档”在 jQuery(document).ready 上没有完全定义【英文标题】:JSLint warns that "document" is not fully defined on jQuery(document).ready 【发布时间】:2011-10-28 18:31:22 【问题描述】:

我得到一个

'document' has not been fully defined yet.
    $(document).ready(function () 

来自jsLint 的警告。 我明白为什么会发生这种情况,但我希望我的代码没有警告。

我的问题是 - 我如何在代码中解决这个问题(将文档分配给自身?var document=document?)或者以其他方式使警告消失。

谢谢。

【问题讨论】:

为什么这是一个警告? document 已定义。这是 JSLint 中的错误吗? 因为,如果我理解正确的话,使用发生在document 的定义中。 IE - 变量在其定义中使用。类似于var x = 3 + x; 【参考方案1】:

你可以简单地使用

/*jslint browser:true */

在代码的开头假设一个浏览器。

【讨论】:

【参考方案2】:

我认为您可以放心地忽略这一点。如果您不希望它显示,请像这样重写它

$(function () 
    // Document is ready
);

$(function () )$(document).ready(function () ) 是 equivalent。

【讨论】:

【参考方案3】:

使用简写:

$(function() 
   ...
);

【讨论】:

【参考方案4】:

如果您更愿意按照自己的方式保留代码,您可以告诉 JSlint 同意您的决定:

/*global document*/
$(document).ready(function () 
    ...

这表明document 已在别处定义。

【讨论】:

【参考方案5】:

JSLint 要求您在选择器选项中使用浏览器。然后将定义文档。在这里使用 $ 将无济于事......无论如何都不会在 JSLint 中使用。

【讨论】:

【参考方案6】:

在根文件夹上创建一个 .jsintrc,使用:

"browser": true

你可以在JSHint Options看到所有选项

【讨论】:

以上是关于JSLint 警告“文档”在 jQuery(document).ready 上没有完全定义的主要内容,如果未能解决你的问题,请参考以下文章

在 Sublime Text 2 中隐藏不必要的 JSLint 警告

如何关闭 JSLint 缩进警告?

抑制 JSHint / JSLint 或替代服务中的“混合空格和制表符”警告?

JSLINT 关于样式的警告或关于条件表达式的错误

JSLint 中迭代器变量的声明被标记为警告

jslint:如何抑制'预期的'Object.create(null)',而是看到'新对象'。警告?