2012-01-23 52 views
0

爲我的網站安裝燈箱後,我的意見停止工作。我查看了代碼,並將位於<head>(帶有lightbox的那些)中的JavaScript鏈接移到了Wordpress-Buddypress附帶的JavaScript鏈接的上方。在我的Lightbox的Lightbox鏈接之前,Wordpress附帶的JavaScript鏈接之下。如何使用jQuery.noConflict();

做出開關後,評論開始在我的網站上再次工作,但現在燈箱不工作。

當我使用Firebug來查找錯誤時,出現此錯誤。

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

該代碼來自哪個是我的收藏夾出來一個文件「videolightbox.js」。

我在這個問題上做了大量的研究,我想我可能需要使用jQuery.noConflict();,但我不知道如何使用它?我正在看這個link

但我似乎無法得到它的工作,因爲我不知道如何使用它。我也嘗試用jQuery()替換所有$(),但這並沒有解決我的問題。

+0

你是否用「videolightbox.js」文件中的jQuery()替換$()? –

+0

是的,我確實這麼做了。如果我改變它的話,我的javascript鏈接的結構會是什麼樣的結構()(我不知道如何設置它) – user1164029

回答

0

需要密切關注的一件事是腳本加載順序和監視重複加載JQuery。在一些(希望很少見的)情況下,可以加載JQuery,設置一些使用它的代碼,然後重新加載JQuery,它會拋棄第一次加載後設置的事件。

我知道我遇到過這種情況一次,但我不記得導致它發生的細節。

+0

我認爲可能是這樣,根據我放置腳本的位置對於我的燈箱,評論將停止工作,否則我的燈箱將停止工作。我查看了我的源代碼,並且有'並且還有''因爲它們中都有「jquery」,你認爲這是否會導致衝突? – user1164029

+0

有一個明顯的可能性,那就是你的問題,因爲你使用兩個可能不同的JQuery版本,但將兩個都分配給'$'。 –

+0

是的,我檢查過它們都是不同的版本。我仍然無法得到的東西工作:/ – user1164029

1

但我不知道如何使用它?

var $j = jQuery.noConflict(); 

,你的代碼就可以 $(選擇),以

很多例子都在這裏 http://api.jquery.com/jQuery.noConflict/

+0

謝謝你的回答。我看了鏈接,看到你從哪裏得到這個..我只是很困惑我在哪裏會把這些代碼放在一起嗎?我的腳本在我的 ??? – user1164029

+0

@ user1164029剛剛加載jQuery庫的地方。或者在你的jQuery選擇器之前的其他地方。 – Cheery

+0

''這是我的第一個jquery的腳本..我還沒有了解在哪裏放置該代碼。在它說「腳本」之後? – user1164029

0

給定要你的答案附加$ J(選擇)更改

$=jQuery.noConflict(); 

現在您可以使用$('#id').css(...);

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存在之前。

相關問題