TypeError: ‘ unDefinition’不是一个函数(计算’$(document)’)

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

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

TypeError: ‘ unDefinition’不是一个函数(计算’$(document)’)

我不知道是什么引起的,也不知道是什么意思。

在 Firebug 里,我得到了这个:

$不是函数

338395 次浏览

Wordpress 默认在 没有冲突模式下使用 jQuery。您需要使用 jQuery作为变量名而不是 $来引用它,例如使用

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>

当我在页面标题中包含 jQuery 时,我也遇到了这个问题,没有意识到主机已经自动将它包含在页面中了。因此,现场加载页面并检查源代码以确定是否链接了 jQuery。

试试这个片段:

jQuery(function($) {
// Your code.
})

对我有用,也许对你也有帮助。

还要检查是否包含 jQuery,然后是一些组件/其他库(如 jQuery UI) ,然后再次意外地包含 jQuery-这将重新定义 jQuery 并删除组件助手(如。Datepicker)关闭实例。

用这个:

var $ =jQuery.noConflict();

两件事:

  1. 确保在 $(文档)之前添加了 jQuery 库。
  2. 然后将所有“ $”都改为: jQuery,就像前面的注释一样。

我只在 Chrome 上有这个问题。

我试过加法

var $ =jQuery.noConflict();

就在打电话之前

$(document).ready(function () {

成功了。

非常感谢

把所有剧本都包在这个..。

<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
});
</script>

许多 JavaScript 库使用 $作为函数或变量名,就像 jQuery 一样。在 jQuery 的例子中,$只是 jQuery 的别名,因此所有功能都是可用的,不需要使用 $。如果需要在 jQuery 旁边使用另一个 JavaScript 库,则通过调用 $. no 冲突()将 $的控制返回给另一个库。在 jQuery 初始化过程中保存 $的旧引用; noPulse ()只是还原它们。

你可以在下面的代码片段中同时使用 jQuery 和 $in

jQuery( document ).ready(function( $ ) {
// jQuery(document)
// $(document)
});
 ;(function($){
// your code
})(jQuery);

将您的 js 代码放在上面的闭包中,应该可以解决这个问题。

我在网络开发运营商也遇到过很多这样的问题。实际上这不是 JS 冲突,当我们加载 html 网站到浏览器我们没有面临这样的错误,但是当我们通过本地主机加载这些类型的网站我们面临这样的问题。那是因为 Localhost。当我们通过 localhost 加载脚本时,它会扫描脚本并呈现输出。但是当我们没有使用 localhost 的时候。它只是扫描输出。例如,当我们在本地主机上编写 php 代码并在没有主机的情况下运行时,我们会得到错误。但是,如果代码是正确的,并通过主机运行,我们得到实际的输出,当我们使用检查元素,我们得到的输出代码在 HTML 格式,但不是在 PHP 格式,这是因为呈现的代码。

这是呈现错误。因此,要修复这些 jquery 代码错误,解决方案之一可能就是使用这种方法。

jQuery(document).ready(function($){
/******** Body of Jquery Code*****/
});

这段代码所做的是通过应用 jquery 将’$’注册为函数的变量。默认情况下,其他。Js 文件只能作为 javascript 读取。

我会用这个

(function ($) {
$(document);
}(jQuery));

可以传递 $in 函数()

jQuery(document).ready(function($){


// jQuery code is in here


});

或者你可以用这个 jQuery(document);代替 $(document);

或者你可以使用 jQuery.noConflict()

var jq=jQuery.noConflict();
jq(document).ready(function(){
jq('selector').show();
});