JSLINT 在 $(document).ready 行停止
jslint stops at $(document).ready line
我在使用 JSLint 时遇到了问题,它提供了一个难以理解的错误:
我正在尝试分析以下结构的代码:
<script type="text/javascript">
var MyGlobalObj = MyGlobalObj || {}; //used for creating namespace security
MyGlobalObj.MyFunction = function () {
//valid javascript
}
$(document).ready(function () {
//Stuff I want analyzed
});
</script>
我在代码中混合使用了javascript和jQuery。但是,JSLint声称,在就绪操作的行上,:
Unexpected '$'.
$(document).ready(function() {
对不起,但是...什么?为什么会出乎意料?什么是"正确"的实现?
Options I am using:
/*jslint white: true, browser: true, devel: true */
Entry in the predef box:
$
注意:在其他地方,我可以根据需要声明$(变量(。只是那一行。
JSLint 优先级发生意外冲突,导致此错误。
根据关于分号的 JSLint 文档:
JSLint 期望每个语句后面都跟着
;
除了for
、function
、if
、switch
、try
和while
。JSLint 不期望 以查看不必要的分号或空语句。
为了提供命名空间保护,我根据此处的教程实现了命名空间:
http://elegantcode.com/2011/01/26/basic-javascript-part-8-namespaces/
但是,当将新变量分配给命名对象时,JSLint(显然是标准约定(认为代码
Obj.Method = function (TheArgs) { /*do stuff*/ };
应后跟分号,无论是否使用 function 关键字。这源于赋值运算符对分号的要求,以取代函数关键字省略的分号。
感谢 Felix Kling 指出"意外"表示意外行之前的代码没有正确结束。
这是该代码的 JSLint 版本。
- 添加分号
-
使用严格
/*全球 $,文档 */
"使用严格";
var MyGlobalObj = MyGlobalObj ||{};用于创建命名空间安全性
MyGlobalObj.MyFunction = function (( {有效的JavaScript};
$(document(.ready(function (( {我想要分析的东西});
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- jQuery document.ready not working
- jQuery document.ready停止代码
- 停止对document.ready函数的重定向/刷新
- $(document).ready和jQuery(function($)不工作;jQuery已定义,但脚本尚未定义;t进
- 函数从$(document).ready外部调用在$(document).ready中定义的函数
- 如果没有document.ready(),我怎么能拥有多个javascript函数呢
- ASPX Jquery 1.11 $(Document).ready(function() {} was skipped
- 重载像$(document).ready这样的函数是错误的
- 延迟加载jquery后替换$(document).ready(function)
- $(document).ready未在brunch/jade/主干网项目中调用
- 为什么不'加载$(document.ready(function)后,单击“工作”
- $(document)中的多个javascript函数.ready不工作
- JavaScript执行从函数声明开始,而不是从$(document).ready()开始
- 从Document.ready中的bundle执行javascript
- 多个 $(document).ready(function() 但只有前几个被解雇
- 如何在 $(document).ready(function(){}) 中使用 for 循环
- 从 document.ready 调用 jQuery 插件抛出 getPreventDefault 错误
- 为什么一个 $(document).ready(function() { 会阻止另一个运行
- 调用 Document.ready 外部的 AJAX 函数