Javascript 使用需要不同jQuery版本的控件

Javascript 使用需要不同jQuery版本的控件,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我试图使用一个Apycom菜单,要求jquery1.3.2与flexigridforrails在相同的页面上,flexigridforrails依赖于jquery1.2.3。为了增加混乱,我试图包括Rails的“prototype.js”并使用它。这是我的订单: <%= javascript_include_tag :defaults %> <%= yield(:head) %> <script src="/javascripts/jquery.js" type="

我试图使用一个Apycom菜单,要求jquery1.3.2与flexigridforrails在相同的页面上,flexigridforrails依赖于jquery1.2.3。为了增加混乱,我试图包括Rails的“prototype.js”并使用它。这是我的订单:

<%= javascript_include_tag :defaults %>
<%= yield(:head) %>
<script src="/javascripts/jquery.js" type="text/javascript"></script>
<script src="/javascripts/flexigrid.js" type="text/javascript"></script>
<script type="text/javascript">
    jq123 = jQuery.noConflict(true)
</script>
<script src="/javascripts/menu/jquery.js" type="text/javascript"></script>
<script src="/javascripts/menu/menu.js" type="text/javascript"></script>
<script type="text/javascript">
    jq132 = jQuery.noConflict(true)
</script>
因此,我的菜单不起作用(至少重要的部分不起作用)。我在这个页面上没有Flexigrid,所以我无法证明它是否有效。我看到了这个答案(),但它并不完全有效。我的本地JavaScript工作正常,但jQuery插件似乎并不满意


有什么建议吗?

Menu.js假定jQuery函数被调用为
$
。使用
jQuery.noConflict
时,需要将对jQuery函数的引用更新为您命名的名称(在本例中为
jq123
jq321

@maghtye指出,menu.js文件错误地引用了$object。解决这个问题的一个简单方法是打开menu.js文件并将内容包装在这个函数调用中

(function($) {

    // $ is now equal to jq321
    // menu.js stuff

})(jq321);

这并不完全奏效。他们还有一个函数调用jQuery,当你这样做时,它会做一些未定义的工作。我使用了模糊的Javascript,所以我需要为菜单付费,但有一行:var$=jQuery,我改为var$=jq132,现在一切都很好。谢谢
(function($) {

    // $ is now equal to jq321
    // menu.js stuff

})(jq321);