2010-01-21 76 views
1

我正在使用我在Andreas Lagerkvist的网站上找到的jQuery.Center()插件。jQuery错误声明jQuery插件函数“不是函数”

我在页面上有一个名为“divClipboard”的控件,当用户点击一个链接时,我想在屏幕中间出现这个控件。

我调用该函数

$('#divClipboard').center();

,它抛出一个错误,该消息是

$( “#divClipboard”)。中心是不是一个 功能

我认为值得一提的是,我试过指定

jQuery.noConflict(); 
jQuery('#divClipboard').center(); 

我也将center()更名为centerElement()无济于事。

我们的设置有2个站点指向同一个虚拟目录,每个虚拟目录都由不同的URL访问。这个插件一直为我工作,直到昨天在一个站点上(它甚至可以在同一个虚拟目录上的另一个站点上工作)。

有没有人有任何想法可能是错的?

感谢

戴夫

+0

失败网站上不包含像插件一样的声音。您是否检查了与当前页面的URL相比较的路径?你使用''标签吗? – jensgram 2010-01-21 11:01:09

+0

插件包含在失败的站点上,因为我可以跟踪它所在的文件的URL。jQuery和插件都在同一个文件中,所以只要$。工程(并为其他东西),我敢肯定.center()代码是可用的。 – DaveDev 2010-01-21 11:12:28

+0

太好了。这消除了最明显的错误:) – jensgram 2010-01-21 11:21:03

回答

0

事实证明,这是发生的原因是因为(如我所提到的),我们有2个站点,每个网站的内容略有不同。

网站A正常,但网站B已损坏。这是因为网站A使用了一个没有引用jQuery文件的包装器。网站B确实有参考。所以,因为我将我的center()代码保存在我们的jquery文件中,并且Site B的包装器也提供了jQuery代码,所以我的jQuery代码从未被引用。

解决方案?把我的中心()插件放在它自己的文件中!

0

有你确信jQuery是加载和然后插件? 还需确保您的.center()调用是一个jQuery装入包装函数

jQuery(function(){ 
    jQuery('#myClickableElement').click(function(){ 
    jQuery('#divClipboard').center(); 
    }); 
}); 
+0

是的,我确定这是因为我将插件代码作为jQuery代码存在的同一文件的一部分。一切都存在于document.ready()函数内部,并且此函数呼叫是标记上的事件处理程序的一部分。这绝对是正确的,因为它适用于其他地方,除了这个网站。我认为代码范围之外的东西是错的,但我不知道它会是什么。 – DaveDev 2010-01-21 11:55:51