TypeError:'undefined'不是一个函数(评估'$(document)')

  1. 我正在使用一个WordPress网站。
  2. 我将这个脚本包含在标题中。

当脚本加载时,我得到这个错误:

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。

两件事情:

  1. 确保你有$(文档)之前添加jQuery库。
  2. 然后,只要改变所有的“$”: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(); });