пятница, 10 февраля 2012 г.

Конфликтом между jQuery и Prototype.


Сегодня вляпась в такое говницо.
Как несовместимость работы 2 галерей конфликтом между jQuery и Prototype.
Потому что есть 3 элемента. Календарь на Prototype и Tabs на jQuery.
Перерыли пол интернета. Как решить такую проблему.
Значит.. функцию была такая

function inf(idLi) {
            idDiv = idLi + "_middly";
            $ ('.inf_middly:visible').fadeOut(0);
            $ ('#' + idDiv).fadeIn(0);
            $ ('#inf li.active').removeClass('active');
            $ ('#' + idLi).addClass('active');
           
            h = $ ('#' + idDiv).outerHeight(true);
           
            $ ('#inf_box').animate({height:150},0);


Вот  в таком виде оно работать не хочет.
Так как в библиотеки Prototype в 9 строке данного кода есть строка
$=function(id){return document.getElementById(id);};

Следовательно, получается, что это галимая Протатайповская библиотека с $ перекрываю вызов мой функции в Квери.
Естественно, что переписывать Протатайп не будет не кто, вариант один менять свое «сео чудо».

Значит, есть таблеточка во всем этом деле.
После того как открылся тег <script ….>

jQuery.noConflict();

вставляем такую конструкцию.
Объявляем jQuery как переменную.
И место теперь $ = jQuery
И вуаля все работает..
Вот такие пироги…

Комментариев нет:

Отправить комментарий