我如何使用jQuery.noConflict();

时间:2012-01-23 23:11:54

标签: javascript jquery wordpress lightbox buddypress

为我的网站安装灯箱后,我的评论停止了工作。我查看了代码,并将<head>中的javascript链接(与lightbox一起提供的链接)移到了Wordpress-Buddypress附带的javascript链接上方。之前我的Lightbox的JavaScript链接低于Wordpress附带的javascript链接。

进行切换后,评论在我的网站上重新开始工作,但现在灯箱无效。

当我使用Firebug查找错误时,我收到此错误。

$("#videogallery a[rel]").overlay is not a function

该代码来自“videolightbox.js”,这是我的灯箱附带的文件。

我对这个问题进行了大量的研究,我想我可能需要使用jQuery.noConflict();,但我不知道如何使用它?我正在看这个link

但我似乎无法让它工作,因为我不知道如何使用它。我也尝试用$()替换所有jQuery(),但这并没有解决我的问题。

4 个答案:

答案 0 :(得分:1)

  

但我不知道如何使用它?

var $j = jQuery.noConflict();

您的代码将从中更改 $(选择器)到$ j(选择器)

这里给出了很多例子 http://api.jquery.com/jQuery.noConflict/

答案 1 :(得分:0)

要仔细考虑的一件事是脚本加载顺序和观察重复加载JQuery。在某些(希望很少见的)情况下,您可以加载JQuery,设置一些使用它的代码,然后重新加载JQuery,它会丢弃第一次加载后设置的事件。

我知道我遇到过这种情况,但我无法记住导致它发生的细节。

答案 2 :(得分:0)

给你答案

$=jQuery.noConflict();

现在你可以使用$('#id')。css(...);

答案 3 :(得分:0)

错误可能导致其余代码未被执行,.overlay不是函数意味着.overlay不是函数且$工作正常。

var test; test("#videogallery a[rel]").test()
//TypeError: test is not a function <-- You would see this if $ wasn't working

var test = function(){return {};};
test("#videogallery a[rel]").test();
//TypeError: test("#videogallery a[rel]").test is not a function <-- You see this because .overlay isn't working

它只是意味着您在.overlay存在之前尝试调用它。