2008-09-22 3 views
4

я получил следующую ситуациюОбъединения Scriptaculous и JQuery в Rails приложении

  • рельсов приложения, которое делает использование RJS/Scriptaculous предлагать функциональность AJAX
  • Лота славной JavaScript написано с помощью JQuery (для отдельное приложение)

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

Какая у меня самая легкая опция для объединения этих двух? Благодаря!

ответ

15
jQuery.noConflict(); 

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

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

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

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

jRails является заменой для сценария/прототипа в Rails с использованием библиотеки jQuery, он делает именно то, что вы ищете.

+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.

Смежные вопросы