2009-10-12 125 views
2

我剛剛將我的JavaScript轉移到jQuery的簡單AJAX函數。不過,我試圖使用jQuery的插件,因爲我想保持相同的功能,但不想包含10個不同的庫。 如果我刪除jquery包含並保持lightbox,它的效果很好 如果我把它放回去,它只是提供全尺寸的圖像而不是框,無論是Chrome還是Firefox的控制檯都抱怨任何東西,它只是直接圖片 我嘗試了5個不同的lightbox克隆/ jQuery插件,但他們都給了我相同的行爲,這導致我認爲有些東西我失蹤了jQuery殺死燈箱

現在我的標題看起來像這樣(double checked,重新都在那裏):

<script type='text/javascript' src='js/jquery.js'></script> 
<script type='text/javascript' src='js/thickbox.js'></script> 
<link rel='stylesheet' type='text/css' href='css/thickbox.css' /> 

和我的畫廊(PHP):

foreach(...){ 
echo "<a href=\"$path\" class='thickbox' rel='$folder'><img border=none src=\"$thumb\" /></a>&nbsp;\n" ; 
} 

爲背景,在foreach的圖像是從一個Ajax調用加載,但這是從來沒有收藏的一個問題,它不應該是因爲所有的HTML反正是有

+2

GET螢火http://getfirebug.com/有和沒有jQuery的檢查收藏夾添加到項目。由於您使用的是PHP,因此可能會出現'$'的問題。您可以嘗試在腳本文件的頂部執行'$ j = jQuery.noConflict()'。 – peirix 2009-10-12 14:43:37

回答

3

這通常是因爲其他庫(而不是jQuery)也嘗試使用美元符號變量名稱。

在jQuery中有一個設置打開兼容模式,這會強制您使用jQuery()而不是$()來進行jQuery調用。

+0

是的,我用jQuery取代了我的$ ajax,它的工作原理......但只在鉻:( – blackbird 2009-10-12 15:14:17

0

只是一個想法...不LightBox試圖包括它自己的jQuery副本或類似的東西? IIRC,這可能是你的問題的原因...

+0

原始燈箱基於原型,我使用的插件使用jquery。我試圖刪除我自己的jquery並離開它到了插件,不起作用,它打破了我的ajax – blackbird 2009-10-12 15:13:37

0

試試看Shadowbox。它有同樣的效果,但沒有與我的JQuery問題。他們也有非常相似的設置,並且很容易切換。

+0

剛剛嘗試過那個,也是slimbox。沒有一個工作,我認爲有一個問題,當從AJAX加載拇指,因爲我跑了一個小測試沒有ajax(用jquery)和模式窗口工作 – blackbird 2009-10-12 15:45:09

3

您也可以使用jQuery Lightbox Plugin

+0

我會提倡這一點,jQuery燈箱插件在幾個方面比原來的方式更優越 – 2009-10-12 17:19:28

+0

這就是我要做的,我找到了解決方案,供將來參考。 javascript代碼: $('#yourdiv a')。lightBox() 未包含,因爲我的內容是通過AJAX獲取的 解決這個問題的方法是將它添加到$(document).ready()中,並確保在頁面中包含相關的js文件,即使是通過AJAX檢索的內容(如果它是新頁面) – blackbird 2009-10-13 00:25:27