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

时间:2008-09-22 00:58:25

标签: javascript jquery ruby-on-rails ruby scriptaculous

我有以下情况

  • 使用rjs / Scriptaculous提供AJAX功能的rails应用程序
  • 使用jQuery编写的很多不错的javascript(用于单独的应用程序)

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

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

3 个答案:

答案 0 :(得分:15)

jQuery.noConflict();

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

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

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

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

答案 1 :(得分:2)

我相信它是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文档中的Using jQuery with Other Libraries

答案 2 :(得分:1)

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