【问题标题】:Combining Scriptaculous and jQuery in a Rails application在 Rails 应用程序中结合 Scriptaculous 和 jQuery
【发布时间】:2010-09-11 21:08:05
【问题描述】:

我遇到了以下情况

  • 一个使用 rjs / Scriptaculous 提供 AJAX 功能的 rails 应用程序
  • 大量使用 jQuery 编写的漂亮 javascript(用于单独的应用程序)

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

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

【问题讨论】:

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


    【解决方案1】:
    jQuery.noConflict();
    

    然后用jquery代替$来引用jquery。例如,

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

    如果你需要修改使用 $ 的 jQuery 代码,你可以用这个包围它:

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

    【讨论】:

      【解决方案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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2013-07-02
          • 1970-01-01
          • 1970-01-01
          • 2012-10-19
          • 2017-12-25
          • 2011-01-18
          • 2010-11-05
          • 2018-06-30
          • 2016-11-03
          相关资源
          最近更新 更多