8

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

未捕获的类型错误:对象函数 (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]=function(c){return!!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(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b ].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])} 没有方法“扩展”

这是 jQuery UI 1.9.3 中似乎导致此问题的行:

this.options = $.widget.extend( {},
this.options,
this._getCreateOptions(),
options );

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

如果有人对可能发生的事情有任何想法,我将不胜感激,这让我发疯了。

4

1 回答 1

7

这不是您问题的答案,但为了说明,有时看起来您遇到了 jQuery 错误,而实际上您的自定义 javascript 出现错误。

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

见图片:

使用控制台查找线路错误

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

另一个问题(如果您使用的是 Wordpress)是您可能会加载 jQuery 两次。听起来您这样做是正确的,但是,您的一个插件可能没有。

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

来自文档:Ninja Forms 使用 WordPress 附带的 jQuery(javascript 库)版本。这意味着如果您使用外部 jQuery 文件,或者另一个插件正在加载自己的 jQuery 版本,则可能会出现错误。例如,如果您使用 WordPress 3.3 或更高版本,Ninja Forms 预计您的站点将使用 jQuery 1.7 版本。如果您有一个主题或插件将其更改为早期版本的 jQuery,Ninja Forms 可能无法正常工作。

于 2012-12-21T19:59:42.843 回答