TypeError:'undefined'不是一个函数(评估'$(document)')
- 我正在使用一个WordPress网站。
- 我将这个脚本包含在标题中。
当脚本加载时,我得到这个错误:
TypeError:'undefined'不是一个函数(评估'$(document)')
我不知道是什么造成了这个问题,甚至是什么意思。
在萤火虫,我得到这个:
$不是一个函数
WordPress在noConflict模式默认使用jQuery。 你需要使用jQuery
作为变量名来引用它,而不是$
,例如use
jQuery(document);
代替
$(document);
你可以很容易地将其封装在自执行函数中,这样$
可以再次引用jQuery(并避免了对全局名称空间的污染),例如
(function ($) { $(document); }(jQuery));
使用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>
用这个:
var $ =jQuery.noConflict();
试试这个片段:
jQuery(function($) { // Your code. })
它为我工作,也许它也会帮助你。
我只在Chrome上遇到这个问题。
我尝试添加
var $ =jQuery.noConflict();
在打电话之前
$(document).ready(function () {
有效。
非常感谢
还要检查是否包含jQuery,然后是一些组件/其他库(如jQuery UI),然后再次意外地包含jQuery – 这将重新定义jQuery并将组件助手(如.datepicker)从实例中删除。
;(function($){ // your code })(jQuery);
把你的js代码放在上面的关闭中,它应该解决问题。
我会用这个
(function ($) { $(document); }(jQuery));
我也遇到了这个问题,当在我的页眉中包含jQuery时,并没有意识到主机已经自动将其包含在页面中。 所以现在加载你的页面,并检查源代码,看看是否正在链接jQuery。
两件事情:
- 确保你有$(文档)之前添加jQuery库。
- 然后,只要改变所有的“$”:jQuery,如前面的评论。
包裹这个之间的所有脚本…
<script> $.noConflict(); jQuery( document ).ready(function( $ ) { // Code that uses jQuery's $ can follow here. }); </script>
许多JavaScript库使用$作为函数或变量名称,就像jQuery一样。 在jQuery的情况下,$是jQuery的别名,所以所有的功能都可以不使用$。 如果您需要使用jQuery附带的另一个JavaScript库,则可以通过调用$ .noConflict()将$ control的控制权返还给另一个库。 $的旧引用在jQuery初始化期间保存; noConflict()只是简单地恢复它们。
您可以在下面的代码片段中同时使用jQuery和$。 它为我工作
jQuery( document ).ready(function( $ ) { // jQuery(document) // $(document) });
网站开发运营商也曾经遇到过这样的问题。 其实它不是JS的冲突,当我们加载html网站到浏览器时,我们没有这样的错误,但是当我们通过localhost加载这些类型的网站时,我们面临着这样的问题。 那是因为localhost。 当我们通过localhost加载脚本时,它会扫描脚本并呈现输出。 但是当我们没有使用本地主机。 它只是扫描输出。 例如,当我们编写php代码putside localhost并运行没有主机,我们得到错误。 但是如果代码是正确的,并且通过主机运行,我们会得到实际的输出,而当我们使用inspect元素时,我们得到HTMl格式的输出代码,而不是PHP格式,这是因为代码的渲染。
这是渲染错误。 所以要解决这些jQuery代码错误的解决方案之一可能是使用这种方法。
jQuery(document).ready(function($){ /******** Body of Jquery Code*****/ });
这段代码做的是通过应用jquery将“$”注册为函数的变量。 否则,默认情况下.js文件只读为javascript。
你可以在函数中传入$()
jQuery(document).ready(function($){ // jQuery code is in here });
或者你可以替换$(document);
用这个jQuery(document);
或者你可以使用jQuery.noConflict()
var jq=jQuery.noConflict(); jq(document).ready(function(){ jq('selector').show(); });