Объединение Scriptaculous и jQuery в приложении Rails - PullRequest
4 голосов
/ 22 сентября 2008

У меня следующая ситуация

  • Приложение для рельсов, использующее rjs / Scriptaculous для обеспечения функциональности AJAX
  • Множество хороших javascript, написанных с использованием jQuery (для отдельного приложения)

Я хочу объединить их и использовать функциональность на основе jQuery в своем приложении Rails, но меня беспокоит конфликты jQuery и Scriptaculous (они оба определяют функцию $ () и т. Д.).

Какой мой самый простой вариант собрать их вместе? Спасибо!

Ответы [ 3 ]

15 голосов
/ 22 сентября 2008
jQuery.noConflict();

Затем используйте jQuery вместо $ для ссылки на jQuery. например.,

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

Если вам нужно адаптировать код jQuery, использующий $, вы можете окружить его следующим:

(function($) {
...your code here...
})(jQuery);
2 голосов
/ 22 сентября 2008

Я считаю, что это 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.

1 голос
/ 22 сентября 2008

jRails - это вставная замена для scriptaculous / prototype в Rails с использованием библиотеки jQuery, она делает именно то, что вы ищете.

...