Я использую jQuery для сборки модуля для существующей страницы.На странице также используется прототип, поэтому существует обычный конфликт jQuery-прототип.Я использую jQuery.noConflict (), и все работает нормально во всех браузерах, кроме ie (протестировано в ie8).Я прочитал все подобные вопросы здесь и на других сайтах, но не могу заставить его работать.Вот как это работает: страница загружает прототип и другие файлы .js с использованием прототипа (effect.js, prototip.js и т. Д.), А затем загружает мой модуль (он же jQuery загружается после прототипа).Я читал об изменении функции $ () прототипа на $$$ (), но это невозможно (многие другие модули, использующие прототип, необходимо будет изменить), поэтому речь идет только об изменении моего js.
ТогдаЯ читал об использовании
(function($) {
//my jQuery code in here
})(jQuery);
, но не совсем понимаю.Мой код примерно такой:
$J = jQuery.noConflict();
$J(document).ready(function(){
fun1();
//jquery stuff
fun2();
});
function fun1(){
//stuff/jQuery code/ call other functions
}
function fun2(){
//stuff/jQuery code/ call other functions
}
, если я помещу все вышеперечисленное в (function($) { /*all the above*/})(jQuery);
, я получаю, что все функции не определены.
Что я делаюнеправильно?Или есть другое решение?