jQuery小部件没有方法"扩展"

Wil*_*mas 8 javascript wordpress jquery jquery-ui typeerror

我正在开发一个Wordpress网站,其中包含许多jQuery和jQuery UI依赖的插件.一切似乎都运行良好,但当我们将整个网站移动到新域名时,我开始在Chrome控制台中看到以下错误:

未捕获的TypeError:对象函数(b,c,d){var e = b.split(".")[0],f; b = b.split(".")[1],f = e +" - " + b,d ||(d = C,C = a.Widget),a.expr [ ":"] [F] =函数(C){返回!! a.data(C,b)},A [ e] = a [e] || {},a [e] [b] = function(a,b){arguments.length && this._createWidget(a,b)}; var g = new c; g.options = a .extend,一个并[e] [b] .prototype = a.extend(0,G,{命名空间(0,{},g.options!):E,widgetName:b,widgetEventPrefix:一个并[e] [b ] .prototype.widgetEventPrefix || b,widgetBaseClass:f},d),a.widget.bridge(b,a [e] [b])}没有方法'extend'

以下是jQuery UI 1.9.3中的一行,它似乎导致了这一点:

this.options = $.widget.extend( {},
this.options,
this._getCreateOptions(),
options );
Run Code Online (Sandbox Code Playgroud)

无论我试图做什么,我似乎都无法完全理解这一点.我正在使用正确的方法(或者我已经读过)通过使用wp_enqueue_script()并将jquery设置为jquery-ui的依赖项来添加脚本,并且查看HTML,jQuery确实在jQuery UI之前加载.

如果有人知道可能会发生什么,我会非常感激,这让我疯狂.

red*_*ory 7

这不是你的问题的答案,但为了说明,当你实际上有一个自定义的JavaScript错误时,有时看起来你有一个jQuery错误.

如果您使用的是Chrome,则可以打开控制台(工具> Javascript控制台)并在错误上旋转小箭头.这将显示导致错误的所有代码行.

见图:

使用控制台查找行错误

通常,如果你向下看列表,它将导致除jQuery之外的另一个javascript.如果你单击右边的黑色链接(即activity.php),它将打开违规行,如果它是javascript.

另一个问题(如果你使用Wordpress)是你可能会加载jQuery两次.听起来你是以正确的方式做到的,但是,你的插件之一可能没有.

编辑 你正在运行什么版本的jQuery(抱歉误读了jquery ui)

从文档:Ninja Forms使用随WordPress打包的jQuery(javascript库)版本.这意味着如果您正在使用外部jQuery文件,或者其他插件正在加载其自己的jQuery版本,则可能会出现错误.例如,如果您使用的是WordPress 3.3或更高版本,Ninja Forms希望您的网站具有1.7版本的jQuery.如果你有一个主题或插件将其更改为早期版本的jQuery,Ninja Forms可能无法正常工作.