2012-12-21 200 views
8

我正在一个包含大量jQuery和jQuery UI依赖插件的Wordpress网站上工作。一切似乎工作正常,但当我们将整个网站移到新的域名时,我开始在Chrome控制台中看到以下错误:jQuery小部件没有方法“扩展”

Uncaught TypeError:Object function(b,c,d){var E = b.split( “ ”)[0]中,f; b = b.split(“。 ”)[1]中,f = E +“ - ” + b,d ||(d = C,C =一个.Widget),a.expr [ “:”] [F] =函数(C){返回!! a.data(C,b)},A [E] =α[E] || {},A [ e)[b] = function(a,b){arguments.length & & this._createWidget(a,b)}; var g = new c; g.options = a.extend(!0,{},g。选项),一个并[e] [b] .prototype = a.extend(0,G,{命名空间:即,widgetName:b,widgetEventPrefix:一个并[e] [b] .prototype.widgetEventPrefix || b,widgetBaseClass: f),d),a.widget.bridge(b,a [e] [b])}没有方法'extend'

这里是jQuery UI 1.9.3中的一行,似乎是b e造成这种情况:

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

无论我试图做什么,我似乎都无法克服这一点。我正在使用适当的方法(或者我读过)通过使用wp_enqueue_script()添加脚本并将jquery设置为jquery-ui的依赖关系,并查看HTML,jQuery实际上在jQuery UI之前加载。

如果任何人有任何可能发生的事情的想法,我会非常感激,这是让我疯狂。

+0

是否正确加载了所有文件? – epascarello

+0

jqueryui.js发生什么? –

+0

我会很乐意看到一个现场示例。 – Batfan

回答

7

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

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

见图片:

Use the console to find the line error

通常,如果你看不起名单将导致比jQuery的另一个JavaScript等。如果你点击右侧的黑色链接(即activity.php),它会打开有问题的行,如果它是javascript的话。

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

编辑 您运行的是什么版本的jQuery(对不起误读jQuery UI的)

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

+1

我知道这并没有太大的帮助,但是这里是错误的堆栈跟踪:http://i.imgur.com/ohYGJ.png显然,忍者形式库似乎是罪魁祸首,但是导致错误看起来不正确或任何错误(并且自从文件被移动后它没有改变)。 –

+0

这是ninja-forms-display中的行: $(“#ninja_form_overlay”)。dialog({height:200,autoOpen:false,modal:true}); –

+0

是的,那是做到了。我手动加载这些库的新版本,出于某种原因忍者表格以前工作得很好,但我认为插件已更新,并且一定是出了什么问题。 我删除了那些手动加载语句,迫使它使用包含的库,一切都恢复正常。谢谢! –