2010-01-26 62 views
0

Swimwire.com不再正確加載JavaScript,因爲我安裝了對其社交模塊JomSocial的更新。這與JomSocial有關,我敢肯定,因爲在主頁上沒有JavaScript正常工作(頂部有一個藍色條,應該可點擊幷包含「打開控制面板」字樣,但不會加載)。而如果我訪問不顯示JomSocial內容的頁面,則JavaScript將很高興地加載。未加載JavaScript。試了一下我能想到的一切

昨天我得到了一些幫助,但不幸的是我仍然很困難。我在JavaScript中的新手和Safari拋出我的錯誤

TypeError: Result of expression '$' [undefined] is not a function. /modules/mod_rokslideshow/tmpl/slideshow.js:73TypeError: Result of expression '$' [undefined] is not a function. 2/media/system/js/mootools.js:54TypeError: Type error

我也不太清楚,在所有如何解釋這一點。我確信JomSocial中的某些內容會導致衝突,但不知道如何解決這個問題。

傑克

+1

我們無法測試它何時處於維護模式。 – sberry 2010-01-26 18:27:53

+0

對不起,再次打開網站。儘管如此,仍然在尋找答案。 :) – Jack 2010-01-26 19:34:04

回答

2

有限定$多個庫;我知道jQuery和Prototype這樣做,不確定MooTools(我在錯誤信息中看到的)。所以,基於這個信息,我只能猜測你有這樣或者那樣的方式加載了兩個使用$的庫。

jQuery解決方案是使用noConflict:http://docs.jquery.com/Core/jQuery.noConflict。不知道衝突的雙方,也不能親自訪問網站,這是我能做的最好的。


編輯:你有沒有嘗試任何MooTools的建議解決方案的? http://mootools.net/blog/2009/06/22/the-dollar-safe-mode/

+1

Mootools確實也有$定義。新版本讓你使用document.id來代替其他人定義$ – 2010-01-26 18:40:46

+0

感謝您的幫助,我再次打開了該網站 - 對不起,我完全忘了! :D 但是,如果您查看源代碼,您將看到jQuery.noConflict()... :( – Jack 2010-01-26 19:34:59

0

你必須確保,即使你在任何衝突模式有jQuery的,你有MooTools的裝載第一。如果你加載jQuery,把它放到沒有衝突模式,然後加載MooTools,它會失敗。我寫了這方面的一些文件在我的書:http://www.packtpub.com/files/learning-joomla-1-5-extension-development-sample-chapter-8-using-javascript-effects.pdf

如果你確保了以下調用的jQuery被添加到該文件之前提出的,它應該jQuery的前加載MooTools的:

JHTML::_('behavior.mootools'); 
1

jQuery.noConflict()最可能會在加載一些其他腳本並試圖使用$之後出現。

另一件事... jQuery.noConflict()如果它包含在另一個庫之前,它可能不起作用,因爲它在這種情況下。

相關問題