jQuery小部件没有方法“扩展”

时间:2012-12-21 19:51:43

标签: javascript jquery wordpress 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 ℃; g.options = a.extend(0,{},g.options!)中,[E] [b] .prototype = a.extend(0,G,{名称空间:即,widgetName:b,widgetEventPrefix! :a [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 );

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

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

1 个答案:

答案 0 :(得分:7)

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

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

见图:

Use the console to find the line error

通常,如果你向下看列表,它将导致除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可能无法正常工作。