Интеграция MooTools и JQuery - PullRequest
3 голосов
/ 29 января 2009

Я использую код MooTools (1.11) и jQuery (1.2.6). Это нормально работает, когда они отдельный. Пока я интегрирую Firefox, он выдает:

(документ) .ready () {} не является функцией.

Что-то не так в моей концепции? Что мне сделать, чтобы исправить это?

Ответы [ 5 ]

4 голосов
/ 29 января 2009
jQuery.noConflict(); 
jQuery(function($){ 

   $works with jQuery here. 
});
$ Works with MooTools here. 

Однако, тем не менее, я бы посоветовал вам отказаться от MooTools.

Его полная модификация всех прототипов объектов может привести к тому, что функции jQuery будут случайными и необъяснимыми причинами ошибок, и, кроме того, модификация MooTools всех прототипов объектов (даже прототипы объектов и функций изменены) в моем случае опыт привел к тому, что jQuery работал значительно медленнее, чем без, просто для MooTools, находящегося на той же странице.

Кроме того, MooTools составляет 50 КБ, а jQuery - 25 КБ (средние числа, включая расширения). Наличие их обоих значительно замедлит загрузку страницы только для дополнительной выборки данных.

В проекте, над которым я работал, были проблемы с производительностью JavaScript, и я говорю действительно серьезных замедлений в, казалось бы, простом коде. Мы мигрировали на jQuery, и прирост производительности не наблюдался до тех пор, пока мы не прекратили загрузку MooTools после завершения миграции кода, а затем, как только мы удалили MooTools, скорость вернулась.

1 голос
/ 29 января 2009

В дополнение к сказанному sanchothefat, вы действительно должны стараться избегать использования двух таких фреймворков вместе, потому что они по сути делают одно и то же. Если вы не распаковываете свой Javascript, вы, вероятно, отправляете пользователю не менее 150-200 Кб JavaScript только с библиотеками, не обращая внимания на используемые вами плагины. Почти все, что вы делаете в MooTools, может быть сделано в jQuery и наоборот. Если вы посмотрите вокруг, вы, вероятно, найдете скрипты, которые выполняют то, что вы ищете, которые были перенесены в обе стороны.

1 голос
/ 29 января 2009

jQuery и MooTools используют '$' для краткого вызова своих основных функций. Команда jQuery создала способ остановить это, поэтому вы можете написать что-то вроде:

jQuery(document).ready(function(){...});

Вместо

$(document).ready(function(){...});

Это позволит вам использовать jQuery и любую другую библиотеку JavaScript рядом друг с другом. Прочитайте их документацию по теме - Использование jQuery с другими библиотеками .

0 голосов
/ 02 ноября 2012

MooTools для jQuery: http://moo4q.com/

jQuery <3 DOM </strong> jQuery потрясающий, но его область действия (как правило) DOM [манипулирование]
MooTools <3 объекта </strong> MooTools позволяет работать с [javascript] объектами черничного пирога.

0 голосов
/ 29 января 2009

Вы также можете увидеть использование .noConlict метода jQuery. Я не знаю, будет ли это полезно в вашем случае ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...