未捕获的语法错误:代码通过 jslint 后意外令牌非法"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浏览器中给了我一条消息,上面写着:未捕获的语法错误:意外令牌非法。 该消息紧跟在上面代码的最后一个分号之后。有谁知道出了什么问题。

请注意,当我注释掉行对话框时,它可以工作。那么这与"这个"有关吗?

如果你对布尔变量使用相等运算符(===),那么你不需要将false作为字符串传递

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

需要更改

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

无论如何,如果您可以发布代码,那么包装它的内容会更好理解。

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

最新更新