gpt4 book ai didi

javascript - "TypeError: $ is not a function"将一些脚本加载到 wordpress 后

转载 作者:行者123 更新时间:2023-11-30 16:33:38 25 4
gpt4 key购买 nike

我们开始提供 HTML 代码段,就像 Google 或 Facebook 为其广告内容或 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 应用程序。

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

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

"TypeError: $ is not a function"

我们尝试使用一些解决方法来摆脱它

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

$(function () {
//code to execute
});

jQuery(document).ready(function(){
var j = jQuery.noConflicts();
j(function () {
//code to execute
});

并且还更改了 Angular 部分中的所有引用。但没有什么能真正发挥作用。

有什么建议吗?

我们正在使用 AngularJs v1.4.7,jQuery v1.11.3(开始迁移到 2.1.4),

最佳答案

有时当加载了更多版本的 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);"

关于javascript - "TypeError: $ is not a function"将一些脚本加载到 wordpress 后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32991072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com