2012-06-26 26 views
1

我一直在試圖使scriptClearBox3停止衝突與MooTools ..但我似乎無法找到一個解決方案在谷歌上如何做到這一點。ClearBox 3 jQuery.noConflict();和/或JavaScript衝突?

預期(已刪除的mootools庫) - 顯示模式窗口 expected http://iforce.co.nz/i/hf1foynk.pvf.png

實際(的Joomla 2.5環境) - 重定向我的形象和不顯示模式窗口。 actual http://iforce.co.nz/i/zn2j3gxi.fpi.png

到目前爲止,我已經跑了代碼jQuery.noConflict();,我已經換用$jQuery.函數調用,但我正在會見了錯誤missing (before formal parameters line 1

Missing Formal http://iforce.co.nz/i/rpqr0ymo.nso.png

這裏是腳本here的變形例。

更新:不確定的,如果它的jQuery的衝突的。由於實施這一fiddle(感謝Joseph Silber)和新的錯誤存在的..

Timestamp: 26/06/2012 3:22:34 p.m. 
Error: Event[cb[73]] is undefined 
Source File: http://localhost/components/com_autobase/js/clearbox/core/cb_core.js 
Line: 4 

所以,問題是...我怎麼能阻止衝突? ClearBox3和MooTools之間?

回答

2

無需替換所有$符號。只要創建一個封閉:

(function($) { 
    // put all the code in here, 
    // the $ will refer to the local variable containing jQuery 
})(jQuery.noConflict()); 

這裏的小提琴:http://jsfiddle.net/v3qWN/

+0

嘿,我不確定如何實現這個..我把原始代碼放在關鍵部分,並嘗試一次,而不是替換'$',然後用'jQuery'代替'$'。錯誤控制檯回來了'jQuery沒有定義'(pastebin available [here](http://pastebin.com/2pq0prE0)): - /任何其他想法?謝謝 – Killrawr

+0

你從哪裏得到那個錯誤?它在包含'jQuery.noConflict()'的行上嗎?你確定你在頁面上加載了jQuery嗎? –

+0

好吧,所以我沒有加載jquery,但是在我從[here](https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js)上加載Google搜索API後,我現在得到錯誤'Event [cb [73]]是未定義的第4行,我不知道爲什麼它仍然是衝突:/ – Killrawr

2

您不應將$替換爲jQuery.,只是jQuery

您也可以嘗試

JQ = jQuery.noConflict(); 

,然後替換所有$JQ,這將是當地的標誌。

+0

嘿作爲約瑟夫指出,從我有jQuery錯誤..我現在認爲它的JavaScript與mootools衝突?任何其他建議?我迷失了哈哈。我確實嘗試了你的答案,錯誤控制檯不會返回任何錯誤,但同時clearbox不工作,它只是指示我的圖像的網址,但不是包含圖像的模態窗口。謝謝 – Killrawr

1

我發現這個問題是與mootools覆蓋在clearbox使用上的Joomla 2.5一些變量。

通過使用$document->addCustomTag('<script src="js/clearbox.js" type="text/javascript"></script>');。這聲明mootools而不是上面。