2011-06-24 29 views
0

我有一個教育CMS一直使用thickbox整個圖像。我現在想通過移除thickbox類並使用jQuery添加colorbox類來替換colorbox。類替換髮生,但colorbox不會觸發。如果我手動更改CMS中的類,它工作正常。使用colorbox替換thickbox類與jQuery不工作

jQuery(".thickbox").removeClass("thickbox").addClass("colorbox"); 

我已將呼叫移至調色板腳本上方的替換腳本,但仍然不行。

任何想法?第一次加載時,colorbox是否需要DOM中的類?

感謝 米

+0

我認爲我們需要更多的細節來正確診斷這一點 - 但爲了避免將來出現這種情況,您應該避免使用特定於技術的類名,而應該提供加載任何類型覆蓋類的泛型類的鏈接('a .overlay'會起作用),然後勾選你選擇的thickbox/colorbox/lightbox腳本到這個類。這樣,當你選擇一個新的插件時,你不需要改變你的HTML! – Beejamin

+0

從頭開始評論 - thickbox需要事情要有一個「厚盒子」的課程,這首先會讓你陷入困境,我認爲這是厚盒子年齡的一個標誌 - 插件開發已經成熟了很多然後! – Beejamin

回答

1

我認爲這個問題是在這樣的ThickBox和顏色框都寫:

彩盒實現爲一個jQuery插件,這是一個有點不同(優於)ThickBox的的排序 - 自包含的小部件模型。不同之處在於,Thickbox會自動查找thickbox類並應用該效果,Colorbox需要您告訴它要處理哪些元素。

您可以移除行:

jQuery(".thickbox").removeClass("thickbox").addClass("colorbox"); 

然後,包括點顏色框後,包括:

$(function(){ 
    $('a.thickbox').colorbox(); 
}); 

這將初始化上的頁面與類的任何鏈接顏色框'thickbox',使用默認設置。您可以通過添加對象來將設置添加到colorbox中,如下所示:{key:value, key:value, key:value}。可用的設置位於colorbox說明頁面上。

作爲一個jQuery風格點,你不應該使用普通的類選擇器jQuery('.something') - 這將遍歷整個頁面中的每個元素,尋找這個類,這在老的瀏覽器/機器中確實很慢。使用您想要的標籤名稱對選擇器進行限定jQuery('a.something'),和/或給出選擇器上下文 - 通過包含要查看的元素的ID:jQuery('a.something', '#contentBox')(其中包含您感興趣的內容的一個「''。

+0

謝謝..這是我整理出來的...而且是啊,我意識到我的糟糕/懶惰的編碼;) – mitch