代码之家  ›  专栏  ›  技术社区  ›  RichH

在Rails应用程序中组合scriptaculous和jquery

  •  4
  • RichH  · 技术社区  · 17 年前

    我有以下情况

    • 一个利用rjs/scriptaculous提供Ajax功能的Rails应用程序
    • 使用jquery编写的大量优秀的javascript(对于单独的应用程序)

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

    我最简单的选择是什么?谢谢!

    3 回复  |  直到 14 年前
        1
  •  15
  •   noah    17 年前
    jQuery.noConflict();
    

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

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

    如果需要调整使用$的jquery代码,可以使用以下代码将其包围:

    (function($) {
    ...your code here...
    })(jQuery);
    
        2
  •  2
  •   Gilles 'SO- stop being evil'    14 年前

    我相信是 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();
    

    有关详细信息,请参阅 Using jQuery with Other Libraries 在jquery文档中。

        3
  •  1
  •   Jason Peacock    17 年前

    jRails 是使用jquery库替换Rails中的scriptaculous/prototype的一个插件,它完全满足您的需求。

    推荐文章