Ruby on rails 3 Jquery与其他库

Ruby on rails 3 Jquery与其他库,ruby-on-rails-3,prototypejs,jquery,Ruby On Rails 3,Prototypejs,Jquery,我收到的错误消息为元素。dispatchEvent不是一个函数。我正在rails 3应用程序中使用带有原型的jQuery。在我的布局文件中,我添加了js文件,如下所示 javascript_include_tag 'jquery','jquery_ujs','prototype','shadowbox/shadowbox.js' <script type="text/javascript">jQuery.noConflict();</script> javascri

我收到的错误消息为
元素。dispatchEvent
不是一个函数。我正在rails 3应用程序中使用带有原型的jQuery。在我的布局文件中,我添加了js文件,如下所示

 javascript_include_tag 'jquery','jquery_ujs','prototype','shadowbox/shadowbox.js' 
<script type="text/javascript">jQuery.noConflict();</script>
javascript\u包括标签'jquery'、'jquery\ujs'、'prototype'、'shadowbox/shadowbox.js'
jQuery.noConflict();
我还添加了如上所述的
jQuery.noConflict
,并在jQuery函数中使用
jQuery
而不是
$
。你知道怎么解决这个问题吗

在我的另一个控制器页面操作中,我也提到了同样的事情,因为有一些js文件只需要为特定页面重新加载


我也是js和rails的新手。

你应该在src之后使用
jQuery.noConflict
到jQuery库

使用
jQuery.noConflict()应该足够了。请在您的浏览器中检查页面的代码,以便您可以看到原型是何时实际添加的。

您应该使用jQuery,然后是.noConflict调用,然后是prototype。

除了添加“无冲突”方法之外,我还可以这样做(尽管两者都可能是最好的):

我将“预设”我的自定义脚本页面。假设我的预测是,我可能会在一个页面中使用5块代码-这就是我预设页面的方式:

jQuery(document).ready(function($) { 
 // use $ in here like normal! 
});

jQuery(document).ready(function($) {

});

jQuery(document).ready(function($) {

});

jQuery(document).ready(function($) {

});

etc. etc.

注意,这使用jQuery对象本身作为回调函数传递给
.ready
方法,因此您可以再次在函数中使用
$
标识符。我可以重命名它,这样它们就不会发生冲突,并且我可以像通常一样在函数中使用
$
标识符。希望这有帮助。

如果可能,不要同时使用多个库。你真的有迫切的理由这么做吗?是的。。我在应用程序中使用nicEdit,nicEdit使用原型。所以我无法避免原型..我在上面说的对吗。??我现在很困惑。。nicEdit是否在不使用原型的情况下工作??还有其他WYSIWYG编辑器——找到一个与jQuery一起工作的编辑器可能比尝试让prototype和jQuery一起工作要容易得多。是一个非常流行的WYSIWYG编辑器,与jQueryI兼容,并且如上所述添加了它。够了吧??但它仍然收到上面的错误消息