我想知道为什么发生TypeError: $ is undefined
错误,
我知道另一种方法是使用jQuery解决问题,为什么$未定义,即使在使用正确的jQuery插件之后。
任何人都可以给我关于此的解释,我知道可以使用的替代方案以及为什么该替代方案有效。任何人都可以解释我。
答案 0 :(得分:7)
如果你打算在调用$()
时使用jQuery库,那么$
是一个函数,通常在加载时由jQuery库定义。如果在尝试使用该符号时未定义该符号,则存在以下可能性:
$
函数,在这种情况下,您需要先在页面中移动jQuery库,或者在加载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.