У многих библиотек есть неприятный трюк, который мне очень понравился, и, похоже, один из них - прототип.
Mootools делает это, если я прав, и это предполагает перегрузку многих прототипов базовых классов, их исправление обезьянами.
И аналогично, я также столкнулся со странным поведением, когда присутствовали mootools и jQuery, обычно умирает jQuery, потому что он вызывал какой-то объектный метод, который каким-то образом был перегружен / пропатчен Mootools.
Также, как ни странно, удаление mootools из списка использования скриптов привело к тому, что все работало намного быстрее, что я пришел к выводу из-за меньшего загрязнения объекта.
Теперь я могу ошибаться, но из своего опыта я пришел к выводу, что такие библиотеки просто не любят сосуществовать друг с другом, и, видя, как мне кажется, что код mootools ухудшает скорость выполнения обычных задач, я всасывал и переносил весь код, основанный на mootools, в jQuery (я уверяю вас, что это была трудоемкая сделка), и в результате код был fast и не было странных ошибок, которые были необъяснимое.
Я рекомендую вам рассмотреть миграцию как минимум Один из ваших вариантов.
Еще одна вещь, при написании:
Я склонен использовать этот синтаксис со всем моим кодом, управляемым jQuery, для некоторой безопасной инкапсуляции в случае, если кто-то каким-либо образом нарушит '$'.
Код выполнения
Это ожидает документа. Уже перед выполнением:
jQuery(function($){
code_with_$_here;
});
jQuery Plugins
(function($){
code_with_$_here;
})(jQuery);
С их помощью людям , использующим любой jQuery, который вы напишете, будет легче использовать его без особых проблем с конфликтом.
Это в основном оставляет их, чтобы удостовериться, что их код не делает ничего действительно волшебного.