使用jQuery插件后为什么会出现“$ is undefined”?

时间:2013-01-16 05:01:03

标签: jquery jquery-plugins

  

可能重复:
  jQuery dollar sign is undefined

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

任何人都可以给我关于此的解释,我知道可以使用的替代方案以及为什么该替代方案有效。任何人都可以解释我。

4 个答案:

答案 0 :(得分:7)

如果你打算在调用$()时使用jQuery库,那么$是一个函数,通常在加载时由jQuery库定义。如果在尝试使用该符号时未定义该符号,则存在以下可能性:

  1. 您尚未将jQuery库加载到出现此错误的页面中。
  2. 您正在尝试在加载jQuery之前引用$函数,在这种情况下,您需要先在页面中移动jQuery库,或者在加载jQuery之后移动有问题的代码。
  3. 某些jQuery代码调用了jQuery.noConflict(),导致$符号未定义。在这种情况下,使用jQuery()将取代$()

答案 1 :(得分:2)

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

$ = myfun;

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

$();

<强> Live Demo

  

许多JavaScript库只使用$作为函数或变量名   就像jQuery一样。在jQuery的例子中,$只是jQuery的别名,所以   无需使用$即可使用所有功能。如果你需要使用   与jQuery一起使用的另一个JavaScript库,返回$ back的控件   调用$.noConflict()到另一个图书馆。旧   在jQuery初始化期间保存了$的引用; noConflict()   简单地恢复它们。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

你能做的是:

  • $替换为jQuery中的script which causing the error,或将$定义为某个变量,并将其替换为此替代。

我的意思是这样:

 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.