【问题标题】:Uncaught SyntaxError: Unexpected token ILLEGAL after code passes jslint "use strict" check okayUncaught SyntaxError: Unexpected token ILLEGAL after code pass jslint“use strict”检查没问题
【发布时间】:2012-09-18 20:02:16
【问题描述】:

我的队友提供了以下代码

/*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: Unexpected token ILLEGAL。消息出现在上面代码的最后一个分号之后。有谁知道出了什么问题。

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

【问题讨论】:

  • 你需要发布包装这个的代码。
  • 这里的 dialog() 是什么.. 是 jQuery UI 中的对话框
  • 我发布了包装代码。这就是全部。 Dialog是我们组的javascript函数来创建模态框。

标签: javascript jquery use-strict


【解决方案1】:

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

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

需要修改

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

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

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

【讨论】:

  • 刚刚发布了所有内容。请注意,如果我注释掉对话框行或将参数设置为 (),则不会出现错误。
猜你喜欢
  • 2012-11-20
  • 2012-01-30
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 2012-09-22
  • 1970-01-01
相关资源
最近更新 更多