2014-12-17 4 views
-4

Я пытаюсь реализовать Salvattore.js на веб-сайте Magento, над которым я работаю.Magento jquery/prototype conflict

Он отлично работает при загрузке страницы, но если я изменил размер окна браузера, он сломается. Я почти уверен, что это вызвано конфликтом между Salvattore.js и prototype.js, но я не могу указать проблему, чтобы исправить это.

Кто-нибудь еще пытался реализовать salvattore.js на веб-сайте Magento?

Вся помощь & комментарии приветствуются !!

Error screen shot

ответ

0

JQuery и Prototype не будет конфликта, пока вы не используете $ в качестве селектора для обеих этих библиотек. используйте $ .noConflict() в jQuery и используйте jQuery для вызова всех вызовов jQuery, таких как jQuery («# id»). hide(). Резерв $ для прототипа.

Если проблема еще не решена, конфликт между jQuery и прототипом не является проблемой. что-то другое вызывает проблему.

+0

Спасибо за ваш помощь и советы, но я использовал конфликт, и все экземпляры jQuery и прототипа работают бок о бок. Проблема, похоже, связана с плагином и прототипом salvattore.js. Я удалил прототип в качестве теста, и salvattore отлично работает. Может ли быть, что прототип меняет функцию, на которую полагается salvattore.js? –

+0

Можете ли вы сказать мне, что такое ошибка? Связано ли это с любой операцией массива. – frondenova

0

Попробуйте обновить прототип для 1.7.2 он решает проблему для меня, но я до сих пор тестирование с Magento в-случае любого вопроса

Основной причиной этого является то, что Salvattore откладывает на родной реализация Array.map, если она существует, но, как отмечалось выше, проблема в том, что Prototype уже перезаписал собственную реализацию Array.map своей собственной.

Исправление заключается в обновлении до Prototype 1.7.1, которое изменило некоторые его внутренние функции, так что функции, такие как Array.map, поддерживают сигнатуры функций нативных реализаций, и поэтому (большинство) таких ошибок не возникает. Вам необходимо обновить версию Prototype до версии 1.7.1, чтобы избежать этой проблемы, хотя вам стоит рассмотреть возможность обновления до Prototype 1.7.2, последней версии с лучшей производительностью и довольно многих исправлений ошибок.