2012-02-13 76 views
0

在生產模式下我的網站遇到一些麻煩。從jQuery腳本中獲取一些錯誤,以免加載。以爲jQuery.noConflict();可以解決它,但它失敗了!現在嘗試了很多東西,所以我打開任何解決方案或調試的建議。在生產模式下不加載有效的jQuery腳本

繼承人我的錯誤:

Uncaught controls.js requires including script.aculo.us' effects.js library 
/#about:30Uncaught TypeError: Object [object Object] has no method 'cycle' 
/#about:12Uncaught TypeError: Object [object Object] has no method 'cycle' 

誰解決它得到金星的一個!謝謝;(

+0

你是否一起使用Prototype和jQuery? – Substantial 2012-02-13 00:25:44

+0

@gg_s嗯,不,不是。從來沒有打算使用原型..不知道如何刪除它,嗯.. – user1132256 2012-02-13 14:17:42

+0

原因可能是當我在生產模式下移動它時,它是服務器上第一個錯誤版本的rails,所以我試圖將它從3.1.1更改爲3.0.10,但意思是當我這樣做時,支持升級了我的服務器上的導軌,所以我不得不重做所有更改。現在看起來很簡單,它包括原型stil .. – user1132256 2012-02-13 14:38:18

回答

2

你需要在處理後續錯誤之前修正第一個錯誤(因爲它們可能來自級聯失敗)根據你的未捕獲異常,你有一個名爲「controls.js」的腳本,它需要。要以工作在頁面上加載script.aculo.us庫從這裏Script.aculo.us下載庫把它放到你的web目錄,包括它controls.js加載之前:

<script type="text/javascript" src="/location/to/scriptaculous.js"></script> 
0

金星?好吧 我有一個類似的問題,你的問題不是jQuery.noConflict();它既不是原型js,也不是你沒有添加任何東西給noconflict

1 - 所有的拳頭對準不使用jquery前每隔LIBRAIRIE:

<script src="js/scriptaculous/lib/prototype.js" type="text/javascript"></script> 

<script src="js/scriptaculous/src/scriptaculous.js" type="text/javascript"></script> 

<script language="javascript" src="js/protoplasm/protoplasm.js"></script> 

<script> 
     Protoplasm.use('rte').transform('textarea.richeditor'); 
</script> 

2 - 之後插入您的jQuery的文件,並直接跟進noconflict之前的任何而且最重要的,這是你在哪裏MI - 使用jQuery的

<script type="text/javascript" src="js/jquery/jquery-2.1.1.min.js"></script> 
<script type="text/javascript"> 

    $.noConflict(); 

    </script> 

3其他圖書館或代碼選取點 打開每個其他的JavaScript代碼作爲使用jquery(如Bootstrap.min.js或app.js)的js,如果您在裏面找到jquery,那麼將其置於代碼頂部,在文件的開頭(在bootstrap.min.js的開頭前)將以下代碼

jQuery(document).ready(function($) { 
// Code that uses jQuery's $ can follow here. 


/////////////////////////////////////////////////////////////////////////////// 

4-在代碼(例如在bootstrap.min.js的端部)的最末端把下面的代碼

/////////////////////////////////////////////////////////////////////////////// 

}); 

5 - 把另一個代碼放在另一個頁面中使用jquery

jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 


    /////////////////////////////////////////////////////////////////////////////// 


/////////////////////////////////////////////////////////////////////////////// 

    }); 

正如你所看到的僅僅是jquery noconflict是不夠的。你真的必須添加這些代碼無處不在jQuery的使用即使在外部文件中,如果你不想要任何干擾

你可能會面對一些與螢火蟲controls.js一些錯誤,但所有的代碼將工作。即使你刪除了control.js,只要scriptaculous.js在你的頁面上,Firebug將總是會給你和TypeError之類的錯誤:this.element爲null controls.js,但是你所有的代碼都能正常工作。

請不要忘記金星。謝謝