1

可能重复:
jQuery 美元符号未定义

我想知道为什么会TypeError: $ is undefined发生错误,我知道替代方法是使用 jQuery 来解决问题,为什么 $ 是未定义的,即使在使用正确的 jQuery 插件之后也是如此。

谁能给我解释一下,我知道要使用的替代方案以及为什么该替代方案有效。请任何人解释一下。

4

4 回答 4

7

如果您的意图是在调用时使用 jQuery 库$(),那么$jQuery 库在加载时通​​常会定义一个函数。如果在您尝试使用该符号时未定义该符号,则有以下可能性:

  1. 您尚未将 jQuery 库加载到出现此错误的页面中。
  2. 您试图在$加载 jQuery 之前引用该函数,在这种情况下,您需要在页面中更早地移动 jQuery 库,或者在加载 jQuery 之后移动有问题的代码。
  3. 调用了一些 jQuery 代码jQuery.noConflict(),导致$符号未定义。在这种情况下, usingjQuery()将代替$().
于 2013-01-16T05:10:59.480 回答
2

$ 只是一个指向 jQuery 对象的变量。您的 jQuery 库没有定义。您可以将其更改为指向您的对象或函数。以下示例将$指出 function myfun

$ = myfun;

function myfun()
{
 alert("myfun");
}

$();

现场演示

许多 JavaScript 库使用 $ 作为函数或变量名,就像 jQuery 一样。在 jQuery 的例子中,$ 只是 jQuery 的别名,所以所有功能都可以在不使用 $ 的情况下使用。如果您需要在 jQuery 旁边使用另一个 JavaScript 库,请通过调用$.noConflict()将 $ 的控制权返回给另一个库。$ 的旧引用在 jQuery 初始化期间被保存;noConflict() 只是恢复它们。

于 2013-01-16T05:03:02.037 回答
0

你可以做的是:

  • 要么替换 the$jQuery的 the ,script which causing the error要么定义$一些变量并将其与 this 的替代项一起使用。

我的意思是这样:

 jQuery(document).ready(function(){
  jQuery('selector').click(function(){
     jQuery('other_selector').hide();
  });
});

或者这样:

var jQ = $;

jQ(document).ready(function(){
  jQ('selector').click(function(){
     jQ('other_selector').hide();
  });
});

或者还有其他用途jQuery.noConflict()

Try this and see if this helps.

于 2013-01-16T05:17:16.827 回答
-1

您必须在页面上包含 jquery 文件(min.js 或 jquery-latest.js)

于 2013-01-16T05:06:23.063 回答