我们开始提供像谷歌或Facebook那样的HTML-Snippet,用于广告或者像Facebook一样按钮。它包含一个业务应用程序。
我们的HTML-Snippet加载脚本并包含更多信息:
<div id="ncc" data-hash="" ng-jq>
<div id="wiz" ng-controller="WizardCtrl"></div>
<script src="{{URLTOSCRIPT}}/load.js"></script>
</div>
该脚本检查是否安装了jQuery,并将所有相关内容加载到DOM中,并将其加载到angular-Application中。
所有这些在没有启用jQuery.noConflicts-Mode的页面上都能正常工作。
在最新的Wordpress-Updates之后我们得到了一个ERROR
“TypeError:$不是函数”
我们试图使用像
这样的工作来摆脱它jQuery(document).ready(function($){
$(function () {
//code to execute
});
OR
jQuery(document).ready(function(){
var j = jQuery.noConflicts();
j(function () {
//code to execute
});
并且还改变了角度部分中的所有引用。但没有什么工作得很好。
有什么建议吗?
我们正在使用AngularJs v1.4.7,jQuery v1.11.3(开始迁移到2.1.4),
答案 0 :(得分:1)
确保在使用某些jQuery函数的任何其他脚本之前加载jQuery。
答案 1 :(得分:1)
有时,当加载更多版本的jQuery或者它与另一个库冲突时,您可能会收到该错误:
您是否尝试在所有代码中使用“jQuery”替换$符号?
所以你的例子会变成:
jQuery(document).ready(function(){
jQuery(function () {
//code to execute
});
注意:我认为在这种情况下不再需要传递“$”作为参数;)
编辑:还有另一种可能性:你说你正在以这种方式使用$符号(我猜这是为了避免wordpress中常见的冲突):
jQuery(document).ready(function($){
$(function () {
//code to execute
});
但是这将使$符号仅在ready()函数内可用。
你有没有检查你是否有使用$实际上不允许的地方的代码(换句话说,如果你有任何你的js代码,其中$未被映射为“jQuery”)?
编辑2:最终唯一可行的解决方案是:
(function($,undefined){
$(document).ready(function(){
//code to execute
});
})(jQuery);"
答案 2 :(得分:0)
通常,当尚未加载jQuery库时会出现这些错误。确保在加载jquery后调用$() - 调用,这通常发生在文件末尾,以加快加载时间。
因此提出
<script src="{{URLTOSCRIPT}}/load.js"></script>
到body-tag的末尾应该有帮助。
答案 3 :(得分:0)
通常当您收到此错误时:“TypeError:$不是函数” 这意味着,您缺少一个JQuery库,或者它们没有按正确的顺序放置。订购JQuery库非常重要。
答案 4 :(得分:0)
$不是一个功能。这意味着有一个名为$的函数,但它没有名为selectable的插件/小部件。所以,有些东西偷了你的$,或者在它之后添加了另一个库,或者它从未加载过。
答案 5 :(得分:0)
您的脚本文件未正确加载或脚本文件不可用。 打开浏览器检查元素并放入此代码 jQuery的()。jquery的。 它显示了使用哪个jquery版本。 这是为了测试 jQuery的(文件)。就绪(()的函数 {
警报(&#34;测试&#34); });