Javascript &引用;TypeError:$不是函数;在将一些脚本加载到wordpress之后

Javascript &引用;TypeError:$不是函数;在将一些脚本加载到wordpress之后,javascript,jquery,angularjs,wordpress,typeerror,Javascript,Jquery,Angularjs,Wordpress,Typeerror,我们开始提供一个HTML片段,就像谷歌或Facebook为其广告内容提供的一样,或者为类似Facebook的按钮提供集成。它包含一个业务应用程序 我们的HTML代码段加载一个脚本并包含更多信息: 该脚本检查是否安装了jQuery,并将所有相关内容加载到DOM中,最后初始化一个angular应用程序 所有这些在没有启用jQuery.noConflicts-Mode的页面上都可以正常工作 在最新的Wordpress更新之后,我们得到了一个错误 “TypeError:$不是函数” 我们试图用一些变

我们开始提供一个HTML片段,就像谷歌或Facebook为其广告内容提供的一样,或者为类似Facebook的按钮提供集成。它包含一个业务应用程序

我们的HTML代码段加载一个脚本并包含更多信息:


该脚本检查是否安装了jQuery,并将所有相关内容加载到DOM中,最后初始化一个angular应用程序

所有这些在没有启用jQuery.noConflicts-Mode的页面上都可以正常工作

在最新的Wordpress更新之后,我们得到了一个错误

“TypeError:$不是函数”

我们试图用一些变通方法来摆脱它,比如

jQuery(文档).ready(函数($){
$(函数(){
//要执行的代码
});

jQuery(文档).ready(函数(){
var j=jQuery.noConflicts();
j(函数(){
//要执行的代码
});
同时也改变了角度部分的所有参考,但是没有一个工作得很好

有什么建议吗


我们正在使用AngularJs v1.4.7、jQuery v1.11.3(开始迁移到2.1.4),这些错误通常在jQuery库尚未加载时出现。请确保在加载jQuery后调用$()-调用,这通常发生在文件末尾,以加快加载时间

所以把

<script src="{{URLTOSCRIPT}}/load.js"></script>


到body标记的末尾应该会有帮助。

通常在出现此错误时:“TypeError:$不是函数”
这意味着您缺少一个JQuery库,或者它们的顺序不正确。对JQuery库进行排序很重要。

请确保在加载使用某些JQuery函数的任何其他脚本之前加载JQuery。

有时,当加载了更多版本的JQuery或它与另一个库冲突时,您可能会遇到以下错误:

您是否尝试在所有代码中用“jQuery”一词替换$symbol

所以你的例子是:

jQuery(document).ready(function(){

    jQuery(function () {
    //code to execute
});
注意:我认为在这种情况下不再需要将“$”作为参数传递;)

编辑:还有另一种可能性:

你说你是这样使用$符号的(我想是为了避免wordpress中常见的冲突):

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

    $(function () {
    //code to execute
});
但这将使$symbol仅在ready()函数中可用

您是否检查过是否有使用$where的代码,而实际上不允许使用它(或者换句话说,如果您的js代码中有$where未映射为“jQuery”)

编辑2:最终唯一可行的解决方案是:

(function($,undefined){ 
   $(document).ready(function(){ 
     //code to execute 
   }); 
})(jQuery);"

$不是函数。这意味着有一个名为$的函数,但它没有名为Selective的插件/小部件。因此,有东西偷走了您的$或在它之后添加了另一个库,或者它从未加载过。

您的脚本文件加载不正确或脚本文件不可用。 打开浏览器检查元素并放置此代码 jQuery().jQuery。 它显示使用哪个jquery版本。 这是用于测试的
jQuery(文档).ready(函数() {

警报(“测试”);
})

jQuery总是在所有其他脚本之前加载。我认为迁移到jQuery 2.1.4时有问题。是否有可能是因为调用了较旧版本的jQuery?未迁移到较新版本时也存在问题这不是一个选项,我们需要将其加载到代码段中您的权利,在我的示例中这是错误的,愚蠢的复制和过去我也试过了。@r.konrad你100%确定没有其他jquery文件加载到同一个页面上吗?我曾经遇到过一次,但直到我检查了firebug中的每个js文件后才找到它。接近99.9%。疯狂的是,这是一个“工作循环”使用五个页面中的两个页面并在前两个步骤后停止工作。我个人感觉也可能是这样,稍后通过引用在正文底部或页脚加载的插件js可能会导致此错误。@r.konrad如果页面一直工作到某个东西使其停止,那么听起来完全像是在某个时间加载了冲突的东西稍后阶段…有一个工作链接来尝试查看它会很有用;)是的,我们检查了所有这些,但我们找到了一个工作解决方案。:-)在这个网站上,来自“Nayan Paul”的评论解决方案是:“(函数($,未定义){$(文档).ready(函数(){//code to execute};})(jQuery);”在我们的代码片段被打褶的外部站点上,我们不会对排序产生任何影响