2008-09-22 71 views
4

我有以下情況結合是Scriptaculous和JQuery在Rails應用程序

  • Rails應用程序,使得使用RJS的/ Scriptaculous的提供AJAX功能
  • 地塊使用JQuery寫的不錯的javascript(用於一個單獨的應用程序)

我想這兩個結合起來,在我的Rails應用程序中使用我的基於JQuery的功能,但我很擔心jQuery和Scriptaculous的衝突(它們都定義了$()函數等)。

將兩者結合在一起的最簡單的選擇是什麼?謝謝!

回答

15
jQuery.noConflict(); 

然後使用jQuery而不是$引用jQuery。例如,

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

如果您需要調整使用$ jQuery代碼,你可以用這個圍繞着它:

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

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

+0

該域名已經死亡。去這裏尋找jRails:https://github.com/aaronchi/jrails – madh 2010-11-23 20:00:58

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(); 

有關更多信息,請參見Using jQuery with Other Libraries在jQuery文檔中。