未捕获的SyntaxError:代码通过jslint“use strict”后出现意外的令牌ILLEGAL,检查没问题

时间:2012-09-27 05:17:50

标签: javascript jquery use-strict

我有来自队友的以下代码

/*jslint browser: true*/
/*jslint vars: true */
/*global $, jQuery*/
/*global dialog*/

function accessControls() {
    "use strict";

    $('#loginLink, #registerLink').click(function (e) {
        e.preventDefault();
        if ($(this).data("disabled") === "false") {
            $("a.accessLink").data("disabled", "true");
            dialog(this);
        }
    });

}

这是HTML:

<a  class="button accessLink"
            id="loginLink"
            href="#"
            data-action="Login"
            data-dialog="access"
            data-disabled="false"
            data-entity="n/a"
            data-href="/MyAccount/Access/Login"
            title="Login">Login</a>

它在Chrome浏览器中给我一条消息:Uncaught SyntaxError:意外的令牌ILLEGAL。消息在上面的代码的最后一个分号后面。有谁知道什么是错的。

请注意,当我注释掉行对话框时,它会起作用。那么这与“这个”有关吗?

1 个答案:

答案 0 :(得分:1)

如果对布尔变量使用等号运算符(===),则不需要将false作为字符串

传递
if($(this).data("disabled") === "false"){
// some code
}

需要在

中更改
if($(this).data("disabled") === false) {
// some code 
}

无论如何,如果你可以发布包装它的代码,那将更好地理解。

你在哪个jQuery对象上调用dialog()?