我正在使用代码MooTools (1.11) 和 jQuery (1.2.6)。当它们分开时,它工作正常。当我集成 Firefox 时,它会抛出:
(document).ready(){} 不是函数。
我的概念有什么问题吗?我该怎么做才能纠正它?
我正在使用代码MooTools (1.11) 和 jQuery (1.2.6)。当它们分开时,它工作正常。当我集成 Firefox 时,它会抛出:
(document).ready(){} 不是函数。
我的概念有什么问题吗?我该怎么做才能纠正它?
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,速度又恢复了。
jQuery 和 MooTools 都使用 '$' 作为调用其主要函数的简写方式。jQuery 团队已经建立了一种方法来阻止这种情况,因此您可以编写如下内容:
jQuery(document).ready(function(){...});
代替
$(document).ready(function(){...});
这将让您并排使用 jQuery 和任何其他 JavaScript 库。阅读他们关于该主题的文档 - Using jQuery with Other Libraries。
除了 sanchothefat 说的,你真的应该尽量避免同时使用两个这样的框架,因为它们本质上做同样的事情。如果您没有对 Javascript 进行 gzip 压缩,那么您可能仅向用户发送了至少 150-200k 的 JavaScript 以及库,更不用说您正在使用的插件了。几乎你在 MooTools 中所做的任何事情都可以在 jQuery 中完成,反之亦然。如果您环顾四周,您可能会发现执行您正在寻找的操作的脚本已被双向移植。
您还可以看到 jQuery 的.noConlict方法的使用。不知道对你有没有用...
jQuery 的 MooTools:http: //moo4q.com/
jQuery <3 DOM jQuery 很棒,但它的范围是(通常)DOM [操作]
MooTools <3 对象MooTools 可以处理 [javascript] 对象哈克贝利派。