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

时间:2020-03-06 14:31:10  来源:igfitidea点击:

我有以下情况

  • 使用rjs / Scriptaculous提供AJAX功能的Rails应用程序
  • 很多使用JQuery编写的漂亮javascript(用于单独的应用程序)

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

我最容易将两者结合在一起的选择是什么?谢谢!

解决方案

jRails是使用jQuery库替代Rails中的脚本/原型的工具,它完全可以满足需求。

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与其他库一起使用。