当脚本加载时,我收到此错误:
TypeError:'undefined'不是函数(评估'$(document)')
我不知道是什么导致了它或它甚至意味着什么。
在萤火虫中,我明白了:
$不是函数
答案 0 :(得分:239)
Wordpress默认使用noConflict模式下的jQuery。您需要使用jQuery
作为变量名称来引用它,而不是$
,例如使用
jQuery(document);
而不是
$(document);
您可以轻松地将其包装在自执行函数中,以便$
再次引用jQuery(并避免污染全局命名空间),例如。
(function ($) {
$(document);
}(jQuery));
答案 1 :(得分:24)
使用jQuery的noConflict
。它给我带来了奇迹
var example=jQuery.noConflict();
example(function(){
example('div#rift_connect').click(function(){
example('span#resultado').text("Hello, dude!");
});
});
也就是说,假设您在HTML上包含了jQuery
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
答案 2 :(得分:15)
使用此:
var $ =jQuery.noConflict();
答案 3 :(得分:11)
试试这个代码段:
jQuery(function($) {
// Your code.
})
它对我有用,也许它对你也有帮助。
答案 4 :(得分:11)
我仅在Chrome上遇到此问题。
我尝试添加
var $ =jQuery.noConflict();
在致电之前
$(document).ready(function () {
有效。
非常感谢
答案 5 :(得分:6)
同时检查是否包含jQuery,然后是一些组件/其他库(如jQuery UI),然后再次意外地包含jQuery - 这将重新定义jQuery并将组件助手(如.datepicker)从实例中删除。
答案 6 :(得分:4)
;(function($){
// your code
})(jQuery);
将你的js代码放在上面的闭包中,它应该解决问题。
答案 7 :(得分:4)
我会用这个
(function ($) {
$(document);
}(jQuery));
答案 8 :(得分:2)
我在Web开发载体中也经常遇到这样的问题。实际上它不是JS冲突,当我们将html网站加载到浏览器时我们没有遇到这样的错误,但是当我们通过localhost加载这些类型的网站时我们面临这样的问题。这是因为localhost。当我们通过localhost加载脚本时,它会扫描脚本并呈现输出。但是当我们没有使用localhost时。它只是扫描输出。例如,当我们编写php代码时,将localhost放在没有主机的情况下运行,我们会收到错误。但是如果代码是正确的并且通过主机运行,我们得到实际输出,当我们使用inspect元素时,我们得到HTMl格式的输出代码,但不是PHP格式,这是因为代码的渲染。
这是渲染错误。因此,要修复这些jquery代码错误,解决方案之一可能就是使用此方法。
jQuery(document).ready(function($){
/******** Body of Jquery Code*****/
});
此代码的作用是注册&#39; $&#39;通过应用jquery作为函数的变量。否则,默认情况下,.js文件仅作为javascript读取。
答案 9 :(得分:1)
当我在页面标题中包含jQuery时,我也遇到了这个问题,没有意识到主机已经自动将它包含在页面中。因此,请实时加载页面并检查源代码以查看是否链接了jQuery。
答案 10 :(得分:1)
两件事:
答案 11 :(得分:1)
将所有脚本包装在此...
之间<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
});
</script>
许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果您需要在jQuery旁边使用另一个JavaScript库,请通过调用$.noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。
答案 12 :(得分:1)
您可以在下面的代码段中同时使用jQuery和$。它对我有用
jQuery( document ).ready(function( $ ) {
// jQuery(document)
// $(document)
});
答案 13 :(得分:1)
你可以在函数()
中传递$$(document);
或者您可以使用此jQuery(document);
jQuery.noConflict()
或者您可以使用var jq=jQuery.noConflict();
jq(document).ready(function(){
jq('selector').show();
});
{{1}}