【问题标题】:"$ was used before it was defined" error. How to get rid of it?“在定义之前使用了 $”错误。如何摆脱它?
【发布时间】:2015-12-17 09:14:49
【问题描述】:

这是我试图在我的 JS 文件中的括号中使用的代码:

$(document).ready(function () {
$("input").focusin(function () {
    $(this).css("background-color", "#D9D9D2");
});
$("input").focusout(function () {
    $(this).css("background-color", "#FFFFFF");
});

});

我猜这应该可以正常工作。当有人关注时,我试图让我的输入字段具有不同的颜色。 Brackets 不想执行这段代码,因为它说'$ 在定义之前使用'

我尝试执行此代码并出现错误,但它仍然无法正常工作。

【问题讨论】:

  • 您是否在 html 文件中链接到 jQuery?
  • 是的,我做到了。脚本标签是正确的,文件都在同一个目录中。确实从标题中删除了脚本标签并将其放在正文的结束标签附近,因为否则一些 ID-getter 无法找到我正在寻找的元素。
  • 由于不同的原因在浏览器中无法工作,您还没有关闭所有大括号。使用适当的缩进,你会看到它
  • 那是因为你只复制了我帖子代码部分的内容。最后两个括号奇怪地在代码部分之外。在我的程序中,它说它期望“使用严格”;并且在使用 $ 时没有定义 $

标签: javascript jquery


【解决方案1】:

尝试使用

选择所有输入
$(":input")

如果您尝试选择所有输入。 (来源:api.jquery.com

否则,按id选择元素,

$("#textInput")

或按输入类型

$("input [type='text']")

希望能解决您的问题。

另外,你是否在使用 Jslint?

如果是这样,这有时会导致此处提到的问题:

Jquery and Jslint

如果您不使用 jslint,第二个答案甚至可以解决您的问题:

如果你想使用其他脚本提供的变量,那么你需要这样说:

/*global $ */

【讨论】:

  • 谢谢!它确实解决了我的问题,我没有得到 Jslint 的任何错误,但它不能以某种方式工作。
  • 是的,它有助于摆脱 Jslint 给我的错误。但是..代码没有做它应该做的事情。它根本没有影响我的html页面。字段仍然是相同的颜色。
  • 您是否点击了链接并尝试了第一个答案?
  • 另外,你以什么顺序链接到 jquery、你的脚本等?可能您将它们链接到您的页面的顺序导致了这种情况
猜你喜欢
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
相关资源
最近更新 更多