3

我正在使用代码MooTools (1.11) 和 jQuery (1.2.6)。当它们分开时,它工作正常。当我集成 Firefox 时,它会抛出:

(document).ready(){} 不是函数。

我的概念有什么问题吗?我该怎么做才能纠正它?

4

5 回答 5

4
jQuery.noConflict(); 
jQuery(function($){ 

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

但是,也就是说,我建议您放弃 MooTools。

它对所有对象原型的完全修改可能会导致 jQuery 的函数随机和无法解释的导致错误,最重要的是,MooTools 对所有对象原型的修改(甚至修改了 Object 和 Function 原型),根据我的经验,导致在 jQuery 中执行比没有时慢得多,仅仅是因为 MooTools 在同一页面上。

此外,MooTools 为 50 KB,jQuery 为 25 KB(平均数字,包括扩展)。让它们都将大大减慢页面加载速度,只是为了获取额外的数据。

我正在工作的一个项目遇到了 JavaScript 性能问题,而且我说的是非常 严重的减速,在看似简单的代码中。我们迁移到 jQuery,在完成迁移代码后停止加载 MooTools之前,性能没有任何提升,而一旦我们放弃 MooTools,速度又恢复了。

于 2009-01-29T10:28:32.420 回答
1

jQuery 和 MooTools 都使用 '$' 作为调用其主要函数的简写方式。jQuery 团队已经建立了一种方法来阻止这种情况,因此您可以编写如下内容:

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

代替

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

这将让您并排使用 jQuery 和任何其他 JavaScript 库。阅读他们关于该主题的文档 - Using jQuery with Other Libraries

于 2009-01-29T10:03:25.747 回答
1

除了 sanchothefat 说的,你真的应该尽量避免同时使用两个这样的框架,因为它们本质上做同样的事情。如果您没有对 Javascript 进行 gzip 压缩,那么您可能仅向用户发送了至少 150-200k 的 JavaScript 以及库,更不用说您正在使用的插件了。几乎你在 MooTools 中所做的任何事情都可以在 jQuery 中完成,反之亦然。如果您环顾四周,您可能会发现执行您正在寻找的操作的脚本已被双向移植。

于 2009-01-29T10:22:37.847 回答
0

您还可以看到 jQuery 的.noConlict方法的使用。不知道对你有没有用...

于 2009-01-29T10:25:06.000 回答
0

jQuery 的 MooTools:http: //moo4q.com/

jQuery <3 DOM jQuery 很棒,但它的范围是(通常)DOM [操作]
MooTools <3 对象MooTools 可以处理 [javascript] 对象哈克贝利派。

于 2012-11-02T08:07:58.320 回答