在Rails应用程序中结合Scriptaculous和JQuery

我有以下情况

  • 一个rails应用程序,它使用rjs / Scriptaculous来提供AJAXfunction
  • 使用JQuery编写的很多很好的javascript(用于单独的应用程序)

我想结合两者并在我的Rails应用程序中使用基于JQuery的function,但我担心JQuery和Scriptaculous冲突(它们都定义了$()函数等)。

将两者结合在一起的最简单方法是什么? 谢谢!

jQuery.noConflict(); 

然后使用jQuery而不是$来引用jQuery。 例如,

 jQuery('div.foo').doSomething() 

如果你需要调整使用$的jQuery代码,你可以用它包围它:

 (function($) { ...your code here... })(jQuery); 

我相信它是jQuery.noConflict()

您可以像这样单独调用它:

 jQuery.noConflict(); jQuery('div').hide(); 

或者您可以将其分配给您选择的另一个变量:

 var $j = jQuery.noConflict(); $j('div').hide(); 

或者您可以继续在块中使用jQuery的$函数,如下所示:

 jQuery.noConflict(); // Put all your code in your document ready area jQuery(document).ready(function($){ // Do jQuery stuff using $ $("div").hide(); }); // Use Prototype with $(...), etc. $('someid').hide(); 

有关更多信息,请参阅jQuery文档中的将jQuery与其他库一起使用 。

jRails是使用jQuery库的Rails中scriptaculous / prototype的直接替代品,它完全符合您的要求。