Обновление Rails 3: использование Prototype + jQuery. Замените экземпляры «$» в rails.js на «jQuery?»

Мы только что обновились до Rails 3.

Мы заменили файл «rails.js» по умолчанию версией jQuery.

Поскольку наше устаревшее приложение использует Prototype и его ссылку «$», я предполагаю, что нам нужно заменить все ссылки «$» на «jQuery» в jQuery-версии «rails.js».

Однако мы этого не сделали, и вроде бы все работает нормально. Более того, мы не можем найти документацию, предполагающую, что нам это нужно.

Это необходимо? Непонятно, как «rails.js» автоматически знает, что нужно использовать jQuery вместо Prototype, когда дело доходит до ссылок «$».


person Crashalot    schedule 10.05.2011    source источник
comment
Если это действительно необходимо, вы можете отказаться от изменения всех $ для jQuery, обернув скрипт в самовызывающуюся анонимную функцию, которая принимает параметр $, который принимает аргумент jQuery, т.е. Создайте область действия вокруг скрипта   -  person Russ Cam    schedule 11.05.2011


Ответы (1)


Обычно это делается (как указано в комментарии) следующим образом:

(function($){
  $(some_stuff_that_uses_$);
})(jQuery);

Это анонимная самовыполняющаяся функция. По сути, вы берете анонимную функцию function($){} и сразу же запускаете ее, передавая ей параметр jQuery. Это быстрый способ убедиться, что ваш код jquery остается отделенным от любых других фреймворков, которые могут попытаться использовать $.

Однако я думаю, что rail.js уже делает это... так что вполне возможно, что вам не придется ничего делать.

Рекомендуется, чтобы все ваши файлы jquery делали это независимо от того, есть ли у вас несколько фреймворков.

person nzifnab    schedule 28.12.2011