2012-02-13 54 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,但是你所有的代码都能正常工作。

请不要忘记金星。谢谢