2010-04-26 5 views
2

У меня проблема, поскольку я условно включаю сценарий Lightbox на основе Prototype для IE6, поскольку он работает лучше, чем плагин jQuery.jQuery Прототип конфликта, альтернативные решения

Конечно, конфликты двух библиотек, но официальное решение для меня не реально, так как мне пришлось бы заменить тонны $ альтернативным синтаксисом без конфликтов.

Есть ли какое-либо другое решение для меня, имея в виду, что в моем случае было бы легче работать с прототипом с jQuery, чем наоборот?

+2

Любой шанс взять лучшие части скрипта и создать из него плагин jquery? –

ответ

5

Нет, если вам нужно использовать код Prototype (ваш яркий ярлык) в том же окне, что и код jQuery, единственный вариант - тот, который вы не хотите использовать: jQuery.noConflict.

Если вы можете ограничить работу лайтбокса работой в iframe, вы можете загрузить Prototype только в iframe, а не в главное окно. Но мое подозрение в том, что это будет излишним для того, что вы пытаетесь сделать. :-)

Вопрос заключается в том, что прототип не имеет опции не-конфликта (и сейчас нет активного плана, чтобы обеспечить один), и это не легко, завернутые в функции обзорной содержать символы (с все, что вам действительно нужно, - это глобальные символы, а не прототипы, которые jQuery в порядке со всеми). Тем не менее, если вы взяли файл prototype.js и объединили его со своим файлом подключаемого модуля лайтбокса, завернули все это в функцию обзора, а затем отправились на поиски глобальных утечек символов, возможно, вы это сделаете. Это было бы нетривиальным упражнением, особенно если вы не знакомы с Prototype. Но если iframe вещь перебор, это, вероятно, nuking с орбиты. :-)

+0

Спасибо за объяснение TJ – Lorenzo

1

Вы рассмотрели возможность использования плагина jQuery, который, как вы говорите, не так хорошо работает (я могу найти пару, может быть такой: http://leandrovieira.com/projects/jquery/lightbox/) и попытаться заставить его работать лучше в IE6 ? Если необходимо, проверьте исправления IE6 в версии Prototype.

Я считаю это лучшим вариантом, чем пытаться заставить Prototype и jQuery играть вместе.

2

Вы можете попробовать, что я делаю, работая над приложением, основанным на библиотеке Prototype, но мне нужна функция jQuery.

jQuery(document).ready(function($) 
{ 
    $("#BoxLabelRange").next('span').mouseenter(function() 
    { 
     $("#SearchInformation").slideDown(); 
    }) 
}) 

См. Параметр, который я добавил к документу. Уже знак доллара? Внутри этого вызова функции вы можете использовать псевдоним «$» jQuery без каких-либо проблем. Работает на меня. Удачи!

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