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

Posted

技术标签:

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

我遇到了以下情况

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

我想将两者结合起来并在我的 Rails 应用程序中使用基于 jQuery 的功能,但我担心 jQuery 和 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 的替代品,它完全符合您的要求。

【讨论】:

以上是关于在 Rails 应用程序中结合 Scriptaculous 和 jQuery的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ruby​​ on rails 中结合救援多个异常?

将 Spine 与主宰相结合

RAILS:Authlogic gem 和 Userstamp 插件

Bootstrap 多选下拉菜单,在 Rails 上带有搜索栏

与Sinatra一起设计

Ruby on Rails Tutorial 第二章