совместимость при использовании библиотеки mootools в виджете? - PullRequest
0 голосов
/ 14 июня 2010

Я хочу использовать библиотеку mootools для создания анимации и ajax в виджете, который я создаю.

Я планирую сделать виджет записывающим себя на странице, чтобы конечный пользователь просто развернул одну строкуjavascript.

Я обеспокоен проблемами совместимости, которые могут возникнуть, если мой виджет используется на странице, которая уже использует другую библиотеку.

Короткие тесты показывают проблемы, даже если они заключены в собственнуювыполнение функции, если scriptaculous уже загружен, хотя jquery, похоже, не вызывает проблемы.

каково лучшее решение для этого?

есть ли способ загрузить mootools изолированно, чтобы я мог просто использовать его для своих целей?

я вижу, что jquery, хотя и незнакомый для меня, очень пространственно распределен по именам и, следовательно, вероятно, более подходит длязадача, будет ли использовать это вместо того, чтобы облегчить любые потенциальные проблемы?

Могу ли я просто скопировать и вставить mootools в мою самозапускающуюся функцию?

nb: в результате возникает следующая ошибка при использовании с прототипомиспользования метода setStyle в mootool.

element.style is undefined

element.style.cssText += ';' + styles;

Ответы [ 2 ]

1 голос
/ 14 июня 2010

вы не можете "namespace" mootools.это прототип библиотеки.Вы, кажется, указываете, что пытаетесь использовать его вместе с prototype - который все еще является прототипной библиотекой на момент написания (ходили разговоры о том, что они уходят от этого).

в основном 2 такие платформы вместе друг с другом будут иметь совершенно непредсказуемые результаты, нет никаких гарантий относительно того, какой метод библиотеки будет иметь приоритет над любым из прототипов, которые они изменяют.

mootools может счастливо сосуществовать с jquery или любой другой работающей библиотекой.он также ищет все, что уже определяет $ и, если он недоступен (скажем, потому что $ === jQuery), он возвращается к использованию document.id ().

, если ваша страница уже использует scriptaculous, то вы должны делать эффекты, используя это (в идеальном мире).следующая лучшая вещь, вы можете попробовать jquery, но это неприятно ради простого виджета (или любых 2-х фреймворков)не сломал ни одной страницы, в которую он был встроен, так что я думаю, что это выполнимо.к сожалению для вас, они, кажется, переехали в свою собственную ванильную библиотеку сейчас ...

1 голос
/ 14 июня 2010

Нет способа использовать mootools. Разработчики специально заявили, что они не собираются использовать mootools пространства имен для запуска по стороннему прототипу, и они подавляют любые попытки изменить ядро, чтобы сделать это (см. 1).

Вам действительно лучше использовать jQuery или другую библиотеку с пространством имен (я полагаю, что и Dojo, и YUI есть, но я могу ошибаться), или, если вам не нужны накладные расходы, просто создайте свою собственную в старом добром - мода JS.

  1. https://mootools.lighthouseapp.com/projects/2706/tickets/219-mootools-namespace
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...